我通过使用获得了所有文件的列表,但它给出了所有文件,我需要列表中的特定文件。
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
}
方法File.eachFileRecurse(FileType, Closure)
只能通过FileType
进行过滤;选项为FILES
、DIRECTORIES
和ANY
(全部)。请记住,这是文件系统意义上的文件类型,与文件内容无关。例如,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
选项来指定一个正则表达式来过滤文件名。您可以在文档中了解其他可用的选项。