【发布时间】:2013-09-22 10:20:39
【问题描述】:
我想使用 Apache Commons IO 的 FileUtils.listFiles 来查找目录中的所有文件,但 不想递归地执行搜索。
我可以像这样递归地列出所有文件:
FileUtils.listFiles(directory,
new RegexFileFilter(regex),
DirectoryFileFilter.DIRECTORY);
这里DirectoryFileFilter.DIRECTORY 接受所有目录,因此完全递归。查看DirectoryFileFilter 的JavaDoc,我看不到任何提供的拒绝所有目录的实现。我可以自己实现它..
public class NonRecursiveDirectoryFileFilter extends DirectoryFileFilter {
@Override
public boolean accept(File file) {
return false;
}
}
我认为如果 Commons IO 包含一个方便的 DirectoryFileFilter.DIRECTORY 用于递归搜索,那么应该有一个同样方便的非递归搜索实现,不是吗? JavaDocs 建议 Commons IO 中没有提供 DirectoryFileFilter 的扩展。我忽略了什么吗?
【问题讨论】:
-
@MrLore 我实际上不知道
File.listFiles! =) 我最终找到了一个FalseFileFilter,它可以解决问题,但这更干净,干杯!
标签: java apache-commons fileutils apache-commons-io