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

时间:2016-04-20 13:24:51

标签: groovy

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

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
}

1 个答案:

答案 0 :(得分:1)

方法File.eachFileRecurse(FileType, Closure)只能按FileType进行过滤;选项为FILESDIRECTORIESANY(所有内容)。请记住,这是 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中的其他可用选项。