我想使用Apache IO Commons收集与给定名称匹配的目录中的所有(子)目录。虽然我可以使用NameFileFilter
与FileUtils.listFiles
组合来解决此文件的任务,但我找不到为文件夹执行此操作的解决方案。
我尝试了以下代码段:
IOFileFilter fileFilter = new NameFileFilter(fileName);
Collection<File> fileList = FileUtils.listFilesAndDirs(rootFolder, fileFilter, TrueFileFilter.INSTANCE);
它标识文件夹和子文件夹,但不会根据NameFileFilter过滤它们。我做错了什么?
答案 0 :(得分:3)
您的代码只查找具有此名称的文件,而不是任何目录。
这应该有效:
IOFileFilter nameFilter = new NameFileFilter(fileName);
Collection<File> fileList = FileUtils.listFilesAndDirs(rootFolder,
new NotFileFilter(TrueFileFilter.INSTANCE),
nameFilter);