Java在目录层次结构

时间:2016-08-24 09:02:22

标签: java file java-io

我实现了一个递归方法来遍历目录层次结构,寻找具有给定扩展名的文件;但我不相信这是最简单的方法,它涉及isDirectory()listFiles()等。

有没有办法在没有明确编写递归方法的情况下做到这一点:我正在考虑像find那样直接返回结构中任何级别的文件或文件名列表(带有完整路径)匹配正确的扩展名。然后我会循环遍历这些文件。

任何帮助表示感谢。

2 个答案:

答案 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)

带过滤器。