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.