在过去一小时内修改过的目录中查找文件

时间:2015-03-25 02:24:58

标签: java groovy

我有一个非常大的文件系统,其文件夹结构可以是4级深度。我有一个文件(即test.log),可以在此文件夹结构中的任何位置。我不是递归遍历整个文件夹结构,而是想应用一些选择,只搜索在过去4小时内修改过的文件夹。我如何使用Groovy遍历来执行这样的操作?感谢

1 个答案:

答案 0 :(得分:0)

也许这会起作用(无法检查):

import static groovy.io.FileType.*
import static groovy.io.FileVisitResult.*
import groovy.time.TimeCategory

currentDate =  new Date()
use( TimeCategory ) {
    before4hours = currentDate - 4.hours
}

def toTravserse = new File('<SOME_DIR>')
toTravserse.traverse(
        type         : FILES,
        maxDepth     : 4,
        nameFilter   : ~/test.log/,
        preDir       : { if (it.lastModified() < before4hours.time) return SKIP_SUBTREE },
) { println "Found: $it" }

查看docs