gpt4 book ai didi

clojure - 构建目录树

转载 作者:行者123 更新时间:2023-12-04 22:17:08 24 4
gpt4 key购买 nike

我正在尝试构建一个目录树,例如 xml 树的表示方式,以向量的形式,我可以使用以下代码段很好地遍历文件系统,但我无法解决如何构建树结构的问题这个的?


(defn trav [dir]
(if (.isDirectory dir)
(do
(println (.getName dir))
(doseq [file (.listFiles dir)]
(if (.isDirectory file)
(trav file)))
)))

最佳答案

这个怎么样?

(defstruct file :file)
(defstruct dir :file :contents)

(defn file-tree
[#^File file]
(if (.isDirectory file)
(struct dir file (vec (map file-tree (.listFiles file))))
(struct file file)))

如果您查询 :file 的结果映射,您将获得该节点的文件条目。如果您要求 :contents 并获得 nil ,则它是一个文件。向量表示目录。

正如卡尔已经说过的:也许 file-seq 更合适。

关于clojure - 构建目录树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1888041/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com