我试图迭代给定目录中的文件列表,并将一个递增变量i = {1,2,3 .....}添加到它们的名称中.
这是我用于迭代文件和更改每个文件名称的代码:
(defn addCounterToExtIn [d]
(def i 0)
(doseq [f (.listFiles (file d)) ] ; make a sequence of all files in d
(if (and (not (.isDirectory f)) ; if file is not a directry and
(= '(\. \i \n) (take-last 3 (.getName f))) ) ; if it ends with .in
(fs/rename f (str d '/ i (.getName f)))))) ; add i to start of its name
Run Code Online (Sandbox Code Playgroud)
我不知道我怎么可以增加i
如doseq
通过每个文件进行迭代.或者,是否有更好的循环用于实现所需的结果?
(require '[clojure.java.io :as io])
(dorun
(->>
(file-seq (io/file "/home/eduard/Downloads"))
(filter #(re-find #".+\.pdf$" (.getName %)))
(map-indexed (fn [i v] [i v]))))
Run Code Online (Sandbox Code Playgroud)
更改功能map-indexed
以重命名,您就完成了.pdf文件的示例输出:
([0 #<File /home/eduard/Downloads/some.pdf>] ...)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
845 次 |
最近记录: |