Verificando se um diretório existe

Clojure:
Verificando se um diretório existe

Como fazer:

Clojure, sendo uma linguagem JVM, pode utilizar a classe java.io.File do Java para esse propósito. Você não precisa de nenhuma biblioteca de terceiros para uma operação tão básica. Veja como você pode fazer isso:

(import 'java.io.File)

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

;; Exemplo de uso
(println (directory-exists? "/caminho/para/seu/diretorio")) ;; verdadeiro ou falso

Esta função, directory-exists?, recebe um caminho de diretório como uma string e retorna true se o diretório existe e false caso contrário. Isso é alcançado criando um objeto File com o caminho do diretório e então chamando o método .exists nesse objeto.

Além da interoperabilidade com Java puro, você pode usar bibliotecas Clojure que abstraem parte do boilerplate Java. Uma dessas bibliotecas é clojure.java.io. No entanto, para verificar se um diretório existe, você ainda usaria a classe File, mas poderá achar a biblioteca útil para outras operações com arquivos. Exemplo:

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

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

;; Exemplo de uso
(println (directory-exists?-clojure "/outro/caminho/para/verificar")) ;; verdadeiro ou falso

Esta versão é bastante semelhante, mas usa a função io/file do Clojure para criar o objeto File. Este método se integra de maneira mais natural a bases de código Clojure ao aproveitar a biblioteca de Clojure para operações de IO, em vez de interagir diretamente com classes Java.