利用Clojure统计代码文件数量和代码行数

时间:2023-01-18 17:03:36
 1 ;; 引入clojure的io包
 2 (use '[clojure.java.io])
 3 
 4 ;; 遍历目录将所有符合要求的文件做为列表返回
 5 (defn walk [dirpath pattern]
 6   (doall (filter #(re-matches pattern (.getName %))
 7                  (file-seq (file dirpath)))))
 8  
 9 ;; 将检索出的php文件列表保存到filted-files
10 (def filted-files (walk "z:/wwwroot" #".*\.php"))
11 
12 ;; 统计文件数量
13 (count filted-files)
14 
15 ;; 统计代码行数
16 (apply + (map #(count %) 
17               (map #(line-seq (reader (.getPath %))) 
18                    filted-files)))