2014-01-23 27 views
4

我想使用Apache IO Commons收集与给定名称匹配的目录内的所有(子)目录。虽然我可以使用NameFileFilterFileUtils.listFiles结合使用来解决文件的这项任务,但我无法找到解决方法来为文件夹执行此操作。使用Java以递归方式列出具有给定名称的目录

我尝试下面的代码片段:

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

它识别文件夹和子文件夹,但根据NameFileFilter不过滤。我究竟做错了什么?

回答

3

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

这应该工作:

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