如何使用groovy中List文件的索引来获取文件



我通过使用获得了所有文件的列表,但它给出了所有文件,我需要列表中的特定文件。

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进行过滤;选项为FILESDIRECTORIESANY(全部)。请记住,这是文件系统意义上的文件类型,与文件内容无关。例如,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选项来指定一个正则表达式来过滤文件名。您可以在文档中了解其他可用的选项。

最新更新