Java 带groovy的DirectoryStream

Java 带groovy的DirectoryStream,java,groovy,nio,Java,Groovy,Nio,我想使用Java8DirectoryStream来查找与glob模式匹配的文件,但我想在Groovy中这样做(至少2.4)。不过,我很难找到一个如何实现它的示例,因为try-with-resources在groovy中不存在 此外,如果搜索模式是**/*.txt,该怎么办。该模式说它应该跨越目录边界,但我对DirectoryStream的理解是它没有 def recent = {File file -> new Date() - new Date(file.lastModified) &l

我想使用Java8DirectoryStream来查找与glob模式匹配的文件,但我想在Groovy中这样做(至少2.4)。不过,我很难找到一个如何实现它的示例,因为try-with-resources在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*/
                            }       
                        }
                    }
def recent={File File->new Date()-new Date(File.lastModified)<7}
try(DirectoryStream=Files.newDirectoryStream(dir,job.pattern)){
for(路径条目:流){
如果(最近){
/*多斯塔夫*/
}       
}
}

以下是您想要的(我想)


正如你所说,它不会递归到目录中

你能显示你不工作的代码吗?@tim_yates我已经用我无法工作的资源尝试更新了这个问题。基本上,我们是在上周修改的文件上运行的,这些文件与模式匹配,但是如果文件模式需要,我如何通过目录边界呢?或者这应该是一个单独的问题?您可以使用AntBuilder
new AntBuilder().fileScanner{fileset(dir:dir){include(name:'***.txt')}}}。每个{println it}
我实际上都想离开AntBuilder。我想使用nio路径,因为当我进行单元测试时,我可以在内存文件系统中进行交换。我认为用AntBuilder是不可能的。这可能是因为对于我想要的东西没有“简单”的解决方案。。。我敢打赌它是有效的,但是IDE很好!我只是想建议文件。走吧
Files.newDirectoryStream(dir, { f -> f.fileName ==~ /.+\.txt/ }).withCloseable { stream ->
    stream.each {
        println it
    }
}