我实现了一个递归方法来遍历目录层次结构,寻找具有给定扩展名的文件;但我不相信这是最简单的方法,它涉及isDirectory()
,listFiles()
等。
有没有办法在没有明确编写递归方法的情况下做到这一点:我正在考虑像find
那样直接返回结构中任何级别的文件或文件名列表(带有完整路径)匹配正确的扩展名。然后我会循环遍历这些文件。
任何帮助表示感谢。
答案 0 :(得分:4)
您也可以使用Apache Commons FileUtis
FileUtils.listFiles(dir, extensions, true);
答案 1 :(得分:2)
使用java.io.File#listFiles()
;
public File[] finder( String dirName){
File dir = new File(dirName);
return dir.listFiles(new FilenameFilter() {
public boolean accept(File dir, String filename){
return filename.endsWith(".txt");
}
});
}
<强> 编辑: 强> 如果您想以递归方式发现目录,请查看
FileUtilslistFiles(File directory, String[] extensions, boolean recursive)
带过滤器。