Clojure:
Controleren of een directory bestaat
Hoe:
Gebruik clojure.java.io/file
om een File-object te creëren en .exists
om te controleren of het bestaat. De isDirectory
methode bevestigt of het File een directory is.
(require '[clojure.java.io :as io])
(defn directory-exists? [path]
(let [dir (io/file path)]
(and (.exists dir) (.isDirectory dir))))
;; Voorbeeldgebruik:
(directory-exists? "/pad/naar/directory") ;=> waar of onwaar
Voorbeelduitvoer:
waar ; als de directory bestaat
onwaar ; als de directory niet bestaat
Diepgaande Duik
Historisch gezien wordt een vergelijkbaar proces gebruikt in Java; aangezien Clojure op de JVM draait, maakt het gebruik van Java-bibliotheken voor bestandssysteemoperaties. Alternatieven in Clojure zouden het gebruik van andere Java-functies of bibliotheken zoals nio.file.Files
kunnen inhouden. Achter de schermen kan het controleren op de aanwezigheid van een directory IO-intensief zijn en kan het zich verschillend gedragen over besturingssystemen en bestandssysteempermissies heen, wat verklaart waarom het verzekeren van zijn bestaan voordat verdere operaties worden uitgevoerd cruciaal is.
Zie Ook
- Clojure Docs over I/O: https://clojure.github.io/clojure/clojure.java.io-api.html
- Java’s File Klasse: https://docs.oracle.com/javase/8/docs/api/java/io/File.html
- Java’s NIO Files Klasse: https://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html