groovy 的 DirectoryStream
DirectoryStream with groovy
我想使用 java 8 DirectoryStream 来查找与 glob 模式匹配的文件,但我想在 Groovy(至少 2.4)中进行。不过,我无法找到如何执行此操作的示例,因为 groovy.
中不存在 try-with-resources
此外,如果搜索模式是 **/*.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*/
}
}
}
以下是你想要的(我认为)
Files.newDirectoryStream(dir, { f -> f.fileName ==~ /.+\.txt/ }).withCloseable { stream ->
stream.each {
println it
}
}
正如你所说,它不会递归到目录
我想使用 java 8 DirectoryStream 来查找与 glob 模式匹配的文件,但我想在 Groovy(至少 2.4)中进行。不过,我无法找到如何执行此操作的示例,因为 groovy.
中不存在 try-with-resources此外,如果搜索模式是 **/*.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*/
}
}
}
以下是你想要的(我认为)
Files.newDirectoryStream(dir, { f -> f.fileName ==~ /.+\.txt/ }).withCloseable { stream ->
stream.each {
println it
}
}
正如你所说,它不会递归到目录