2013-09-22 46 views
0

我想使用Apache Commons IO的FileUtils.listFiles查找目录中的所有文件,但不想执行搜索递归Java - commons-io - 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; 
    } 

} 

我想如果下议院IO包括方便DirectoryFileFilter.DIRECTORY递归搜索,应该有非递归搜索同样方便的实现,不是吗? JavaDocs建议在Commons IO中没有扩展DirectoryFileFilter。我可以忽略一些东西吗

+0

@MrLore我其实不知道'File.listFiles'! =)我最终找到了一个'FalseFileFilter'这个技巧,但是这个更干净,干杯! –

回答

0

我想在这里给@MrLore谁指出,File.listFiles确实是我想要的。正如他所说的,在对他的评论进行编辑之前,CommonsIO的FileUtils.listFiles旨在提供更多功能,我描述的用例不需要这些额外功能。

0

土井,发现它..

FalseFileFilter

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