我对Clojure还是陌生的,因此我在如何使用文件路径在Clojure中创建树感到很苦恼。我使用file-seq将所有文件保存在目录下,并将它们存储在中files。输入是一个文件路径,如下所示:
resources/data/2012/05/02/low.xml
resources/data/2012/05/01/low.xml
Run Code Online (Sandbox Code Playgroud)
我可以使用以下命令获取文件夹和文件的所有单独名称:
(for [x files]
(if (.contains (.getPath x) ".json")
(for [y (str/split (.getPath x) #"\\")] y)))
Run Code Online (Sandbox Code Playgroud)
这给了我所有文件夹的列表,但是我不知道如何将它们组合成一个列表来创建树形结构。如果有任何答案可以解释他们的代码如何工作,以帮助学习。这2个输入的期望输出为:
(resources (data (2012 (05 (02 (low.xml)) (01 (low.xml))))))
Run Code Online (Sandbox Code Playgroud)