Java - commons-io - 非递归的listFiles

时间:2013-09-22 10:20:39

标签: java apache-commons fileutils apache-commons-io

我想使用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的扩展名。我忽略了什么吗?

2 个答案:

答案 0 :(得分:0)

Doi,发现它..

FalseFileFilter

  

始终返回false的文件过滤器。

答案 1 :(得分:0)

我想在此向@MrLore致敬,他们指出File.listFiles完全符合我的要求。正如他所说,在编辑评论之前,CommonsIO的FileUtils.listFiles旨在提供更多功能,而我所描述的用例并不需要这些额外的功能。