使用Java递归列出具有给定名称的目录

时间:2014-01-23 13:25:56

标签: java apache-commons

我想使用Apache IO Commons收集与给定名称匹配的目录中的所有(子)目录。虽然我可以使用NameFileFilterFileUtils.listFiles组合来解决此文件的任务,但我找不到为文件夹执行此操作的解决方案。

我尝试了以下代码段:

IOFileFilter fileFilter = new NameFileFilter(fileName);
Collection<File> fileList = FileUtils.listFilesAndDirs(rootFolder, fileFilter, TrueFileFilter.INSTANCE);

它标识文件夹和子文件夹,但不会根据NameFileFilter过滤它们。我做错了什么?

1 个答案:

答案 0 :(得分:3)

您的代码只查找具有此名称的文件,而不是任何目录。

这应该有效:

IOFileFilter nameFilter = new NameFileFilter(fileName);
Collection<File> fileList = FileUtils.listFilesAndDirs(rootFolder, 
  new NotFileFilter(TrueFileFilter.INSTANCE),
  nameFilter);