标签:
常常因为磁盘空间不足的原因,须要删除旧文件,因此希望有一个函数,可以查找到某个时间点之前的文件,并删除之。
用newLISP来实现的话,须要相似这种功能:
(define (location-file-based-on-modified-time dir-path from-seconds to-seconds file-op) (unless (directory? dir-path) (throw-error (string dir-path " folder does not exist")) ) (set ‘dir-path (make-sure-folder-path-end-of-slash dir-path)) (recursive-access-dir dir-path file-op (list from-seconds to-seconds)))
调用代码:
;; @[from-seconds, to-seconds) (define (show-file file-path ext-context) (set ‘m-time ((file-info file-path) 6)) (set ‘from (ext-context 0)) (set ‘to (ext-context 1)) (unless (and (>= m-time from) (< m-time to)) (if (regex ".txt$" file-path) (begin (println "---begin---") (println file-path) (println (string "modified time: " (date m-time))) (println (string "from time: " (date from))) (println (string "to time: " (date to))) (delete-file file-path) (println (sys-error)) (println "---end---"))) )) (set ‘cur-time (date-value)) (set ‘five-hours-ago (- cur-time (* 3600 5))) ;;(println cur-time) ;;(println five-hours-ago) (catch (FILE:location-file-based-on-modified-time "/tmp" five-hours-ago cur-time show-file) ‘result) (if result (println result))
假设找到,则返回true, 否则返回nil.
标签:
原文地址:http://www.cnblogs.com/gcczhongduan/p/4509992.html