Kontrollera om en katalog existerar

Clojure:
Kontrollera om en katalog existerar

Hur man gör:

Clojure, som är ett JVM-språk, kan använda Java-klassen java.io.File för detta ändamål. Du behöver inget tredjepartsbibliotek för en sådan grundläggande operation. Så här kan du göra det:

(import 'java.io.File)

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

;; Exempelanvändning
(println (directory-exists? "/path/to/your/directory")) ;; sant eller falskt

Denna funktion, directory-exists?, tar en katalogväg som en sträng och returnerar true om katalogen finns och false annars. Detta uppnås genom att skapa ett File-objekt med katalogvägen och sedan anropa metoden .exists på detta objekt.

Utöver ren Java-interoperabilitet kan du använda Clojure-bibliotek som abstraherar bort en del av Java-boilerplate. Ett sådant bibliotek är clojure.java.io. Dock skulle du fortfarande använda File-klassen för att kontrollera om en katalog finns, men du kan tycka att biblioteket är användbart för andra filoperationer. Exempel:

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

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

;; Exempelanvändning
(println (directory-exists?-clojure "/another/path/to/check")) ;; sant eller falskt

Denna version är ganska lik men använder Clojure-funktionen io/file för att skapa File-objektet. Denna metod blandar mer naturligt in i Clojure-kodbaser genom att utnyttja Clojures bibliotek för IO-operationer, snarare än att direkt gränssnitt med Java-klasser.