एक तेज़ और सरल दृष्टिकोण पर यह करने के dirs का एक वेक्टर बनाने के लिए और नक्शे mkdir बनाने के लिए होगा:
user> (map #(.mkdir (java.io.File. %)) ["a", "a/b" "a/b/c"])
(true true true)
या आप एक पेड़ के रूप में अपने dir संरचना निर्दिष्ट और ज़िपर का उपयोग बना चलने के लिए कर सकते हैं रास्ते पर डीआईआर:
(def dirs ["a" ["b" ["b1" "b2"]] ["c" ["c1"]]])
(defn make-dir-tree [original]
(loop [loc (zip/vector-zip original)]
(if (zip/end? loc)
(zip/root loc)
(recur (zip/next
(do (if (not (vector? (zip/node loc)))
(let [path (apply str (interpose "/" (butlast (map first (zip/path loc)))))
name (zip/node loc)]
(if (empty? path)
(.mkdir (java.io.File. name))
(.mkdir (java.io.File. (str path "/" name))))))
loc))))))
(make-dir-tree dirs)
।
[email protected]:~/hello$ find a
a
a/c
a/c/c1
a/b
a/b/c
a/b/b2
a/b/b1
यदि आप बहुत सारे सामान्य सिस्टम प्रशासन कर रहे हैं तो कुछ भारी हो सकता है। pallet project भौतिक और क्लाउड होस्टेड सिस्टम पर सभी प्रकार के सिस्टम प्रशासन करने के लिए एक लाइब्रेरी है (हालांकि यह बादलों की चीजों की तरफ झुकता है)। विशेष रूप से
स्रोत
2013-02-12 20:08:26
'मेक-माता-पिता' सहायक हो सकता है https://clojuredocs.org/clojure.java.io/make-parents – xhh