带有groovy的DirectoryStream

时间:2017-04-17 21:12:22

标签: java groovy nio

我想使用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*/
                            }       
                        }
                    }

1 个答案:

答案 0 :(得分:1)

以下是您想要的(我认为)

Files.newDirectoryStream(dir, { f -> f.fileName ==~ /.+\.txt/ }).withCloseable { stream ->
    stream.each {
        println it
    }
}

正如你所说,它没有递归到目录