我想使用java 8 DirectoryStream来查找与glob模式匹配的文件,但我想在Groovy中完成(至少2.4)。我很难找到如何做到这一点的例子,因为在groovy中不存在资源试用。
此外,如果搜索模式为** / * .txt,该怎么办?该模式表明它应该跨越目录边界,但我对DirectoryStream的理解是它没有。
def recent = {File file -> new Date() - new Date(file.lastModified) < 7}
try (DirectoryStream<Path> stream = Files.newDirectoryStream(dir, job.pattern)) {
for (Path entry : stream) {
if(recent){
/*dostuff*/
}
}
}
答案 0 :(得分:1)
以下是您想要的(我认为)
Files.newDirectoryStream(dir, { f -> f.fileName ==~ /.+\.txt/ }).withCloseable { stream ->
stream.each {
println it
}
}
正如你所说,它没有递归到目录