ble*_*fly 6 lisp java io file clojure
我在Clojure中调用java函数来获取文件列表.
(require '[clojure.java.io :as io])
(str (.listFiles (io/file "/home/loluser/loldir")))
Run Code Online (Sandbox Code Playgroud)
我得到了一大堆像这样的字符串
#<File /home/loluser/loldir/lolfile1>
Run Code Online (Sandbox Code Playgroud)
我如何摆脱括号并将它们放在某种形式的数组中,以便另一个函数可以访问它?
这些字符串只是Java File对象的打印格式.
请参阅可用操作的文件javadoc.
如果你想把文件路径作为字符串,那就像是
(map #(.getPath %)
(.listFiles (io/file "/home/loluser/loldir")))
Run Code Online (Sandbox Code Playgroud)
或者你可以使用list,它首先返回字符串:
(.list (io/file "/home/loluser/loldir"))
Run Code Online (Sandbox Code Playgroud)
如果要读取文件,可以将其保存为File对象以传递到核心slurp或其他clojure.java.io或clojure.contrib.duck-streams函数.