2013-09-22 64 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。