Clojure:
Tarkistetaan, onko hakemisto olemassa
Kuinka:
Clojurena, ollessaan JVM-kieli, voi hyödyntää Javan java.io.File
-luokkaa tähän tarkoitukseen. Et tarvitse mitään kolmannen osapuolen kirjastoa tällaiseen perustoimintoon. Tässä on, miten voit tehdä sen:
(import 'java.io.File)
(defn directory-exists? [dir-path]
(let [dir (File. dir-path)]
(.exists dir)))
;; Käyttöesimerkki
(println (directory-exists? "/polku/tiedostohakemistoosi")) ;; true tai false
Tämä funktio, directory-exists?
, ottaa hakemistopolun merkkijonona ja palauttaa true
, jos hakemisto on olemassa, ja false
muuten. Tämä saavutetaan luomalla File
-objekti hakemistopolulla ja sitten kutsumalla .exists
-metodia tähän objektiin.
Lisäksi raakaan Java-yhteistyöhön voit käyttää Clojure-kirjastoja, jotka abstrahoivat joitakin Javan boilerplate-koodia. Yksi tällainen kirjasto on clojure.java.io
. Kuitenkin, hakemiston olemassaolon tarkistamiseksi käyttäisit silti File
-luokkaa, mutta saatat pitää kirjastoa hyödyllisenä muissa tiedosto-operaatioissa. Esimerkki:
(require '[clojure.java.io :as io])
(defn directory-exists?-clojure [dir-path]
(.exists (io/file dir-path)))
;; Esimerkkikäyttö
(println (directory-exists?-clojure "/toinen/polku/tarkistettavaksi")) ;; true tai false
Tämä versio on melko samanlainen, mutta käyttää Clojuren io/file
-funktiota File
-objektin luomiseen. Tämä menetelmä sulautuu luontevammin Clojure-koodikantoihin hyödyntämällä Clojuren IO-operaatioiden kirjastoa, sen sijaan, että se suoraan käyttäisi Javan luokkia.