Work with files / Basic operations

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

(def data-dir (io/file "data" "sub"))

;; mkdirs creates the missing parents too, and answers false if the dir is
;already there
(println "created:" (.mkdirs data-dir))
(println "created again:" (.mkdirs data-dir))
(println "is a directory:" (.isDirectory data-dir))

;; io/make-parents is the shortcut when a file is about to be written
(io/make-parents "data/other/file.txt")
(println "parent ready:" (.isDirectory (io/file "data/other")))