Я вызываю функцию Java в Clojure для получения списка файлов.
(require '[clojure.java.io :as io])
(str (.listFiles (io/file "/home/loluser/loldir")))
И я получаю целый набор строк как они
#<File /home/loluser/loldir/lolfile1>
и т.д. Как я избавляюсь от скобок и помещаю их в некоторую форму массива, таким образом, другая функция может получить доступ к ней?
Эти строки представляют собой просто формат печати для объекта Java File
.
См. Файл javadoc , для которого доступны операции.
Если вам нужны пути к файлам в виде строк, это будет что-то вроде
(map #(.getPath %)
(.listFiles (io/file "/home/loluser/loldir")))
Или вы можете просто использовать list
, который в первую очередь возвращает строки:
(.list (io/file "/home/loluser/loldir"))
Если вы хотите прочитать файл, вы можете также оставить его как объект File для передачи в основные функции slurp
или другие функции clojure.java.io или clojure.contrib.duck-streams .