我通过使用获得了所有文件的列表,但它提供了所有文件,我需要列表中的特定文件。
import groovy.io.FileType
def list = []
def dir = new File("path_to_parent_dir")
dir.eachFileRecurse (FileType.FILES) { file ->
list << file
}
list.each {
println it.path
}
答案 0 :(得分:1)
方法File.eachFileRecurse(FileType, Closure)
只能按FileType
进行过滤;选项为FILES
,DIRECTORIES
和ANY
(所有内容)。请记住,这是 filesystem 意义上的文件类型,与文件内容无关。例如,HTML文档和PNG图像都是FILES
。
如果您想按照文件扩展名进行过滤,则可以使用File.traverse(Map, Closure):
import groovy.io.FileType
def list = []
def dir = new File("source")
dir.traverse(type: FileType.FILES, nameFilter: ~/.*\.html/) { list << it }
list.each {
println it.path
}
在上面的示例中,我使用nameFilter
选项指定正则表达式来过滤文件名。您可以查看documentation中的其他可用选项。