Java 带groovy的DirectoryStream
我想使用Java8DirectoryStream来查找与glob模式匹配的文件,但我想在Groovy中这样做(至少2.4)。不过,我很难找到一个如何实现它的示例,因为try-with-resources在groovy中不存在 此外,如果搜索模式是**/*.txt,该怎么办。该模式说它应该跨越目录边界,但我对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
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
}
}