码迷,mamicode.com
首页 > 其他好文 > 详细

Clojure整理文件

时间:2015-01-08 00:53:34      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:

  最近要回家了,需要把资料整理整理,在电脑上有一大堆书籍,分类存放在各自所属的目录下,要整理起来还挺麻烦的,偷懒是人类进步的伟大特质之一,用Clojure完成这个任务吧。

  写完以后效果不错,完成这一工作只用了不到20行代码,由于我是新手,应该还可以写得更简练的,纯当练手了。代码如下:

(ns ToolsUtilities.core
  (:use [clojure.java.io]))

(def target-types ["pdf"])

(defn file-filt-pred? [file]
  (let [file-name (.getName file)]
    (some #(= (.substring file-name (+ 1 (.lastIndexOf file-name "."))) %) target-types)))

(defn move-subfile-to-target [source target file-filt-pred]
  (.mkdir (file target))
  (let [files (filter file-filt-pred (filter #(.isFile %)(file-seq (file source))))]
    (doseq [per-file files] (copy per-file (file (str target "/" (.getName per-file)))))))

(defn collect-book [source-path target-path]
  (let [dir-filter (partial filter #(.isDirectory %))
        dirs (-> source-path file .listFiles dir-filter)]
    (doseq [dir dirs]
      (move-subfile-to-target dir (str target-path "/" (.getName dir)) file-filt-pred?))))

  

 

Clojure整理文件

标签:

原文地址:http://www.cnblogs.com/ciangcic/p/4209774.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!