Clojure:
Sprawdzanie, czy katalog istnieje

Jak to zrobić:

Clojure, jako język działający na JVM, może wykorzystać klasę java.io.File z Javy do tego celu. Nie potrzebujesz żadnej biblioteki stron trzecich dla tak podstawowej operacji. Oto jak możesz to zrobić:

(import 'java.io.File)

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

;; Przykład użycia
(println (directory-exists? "/ścieżka/do/twojego/katalogu")) ;; true albo false

Ta funkcja, directory-exists?, przyjmuje ścieżkę katalogu jako ciąg znaków i zwraca true, jeśli katalog istnieje, oraz false w przeciwnym razie. Jest to osiągane poprzez utworzenie obiektu File ze ścieżką katalogu, a następnie wywołanie metody .exists na tym obiekcie.

Oprócz bezpośredniego wykorzystania Javy, możesz użyć bibliotek Clojure, które abstrahują część boilerplate’u Javy. Jedną z takich bibliotek jest clojure.java.io. Jednakże, do sprawdzenia czy katalog istnieje, nadal używałbyś klasy File, ale możesz uznać bibliotekę za przydatną do innych operacji na plikach. Przykład:

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

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

;; Przykład użycia
(println (directory-exists?-clojure "/inną/ścieżkę/do/sprawdzenia")) ;; true albo false

Ta wersja jest dość podobna, ale używa funkcji Clojure io/file do stworzenia obiektu File. Ta metoda bardziej naturalnie wpisuje się w bazy kodu Clojure przez wykorzystanie biblioteki Clojure do operacji IO, zamiast bezpośredniego interfejsowania się z klasami Javy.