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

查找某个时间点范围内改动的文件

时间:2015-05-17 18:36:23      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:

常常因为磁盘空间不足的原因,须要删除旧文件,因此希望有一个函数,可以查找到某个时间点之前的文件,并删除之。

用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))



start-time指的是改动时间的開始, end-time指的是改动时间的结束,依照习惯,这是一个左闭右开区间: [start-time, end-time), 这两个时间都使用epoch表示。

假设找到,则返回true, 否则返回nil.


查找某个时间点范围内改动的文件

标签:

原文地址:http://www.cnblogs.com/gcczhongduan/p/4509992.html

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