Clojure:
Vérifier si un répertoire existe

Comment :

Clojure, étant un langage JVM, peut utiliser la classe java.io.File de Java à cette fin. Vous n’avez pas besoin de bibliothèque tierce pour une opération aussi basique. Voici comment vous pouvez procéder :

(import 'java.io.File)

(defn directory-exists? [dir-path]
  (let [dir (File. dir-path)]
    (.exists dir)))

;; Exemple d'utilisation
(println (directory-exists? "/path/to/your/directory")) ;; true or false

Cette fonction, directory-exists?, prend un chemin de répertoire sous forme de chaîne et retourne true si le répertoire existe et false dans le cas contraire. Cela est réalisé en créant un objet File avec le chemin du répertoire, puis en appelant la méthode .exists sur cet objet.

En plus de l’interopérabilité brute avec Java, vous pouvez utiliser des bibliothèques Clojure qui abstraient une partie du code standard Java. Une de ces bibliothèques est clojure.java.io. Cependant, pour vérifier si un répertoire existe, vous utiliserez toujours la classe File, mais vous pourriez trouver la bibliothèque utile pour d’autres opérations sur les fichiers. Exemple :

(require '[clojure.java.io :as io])

(defn directory-exists?-clojure [dir-path]
  (.exists (io/file dir-path)))

;; Exemple d'utilisation
(println (directory-exists?-clojure "/another/path/to/check")) ;; true or false

Cette version est assez similaire mais utilise la fonction io/file de Clojure pour créer l’objet File. Cette méthode s’intègre plus naturellement dans les bases de code Clojure en tirant parti de la bibliothèque Clojure pour les opérations d’IO, plutôt qu’en interfaçant directement avec les classes Java.