迭代2个类似目录结构的最简单方法是什么?

时间:2012-03-03 16:13:45

标签: java

因此,对于一个项目,我有2个目录结构。这些目录位于2个不同的位置,它们各自的目录结构和文件内容是等效的(只是文件的内容不同)。

现在我想通读这两个目录树,创建它们包含的文件的“组合”。

清晰的例子;两个目录树看起来像这样:

directory1
    directory2
        file1
        file2
    file3
    file4

现在我想要匹配两个目录树中的file1的两个File实例。

java File类只允许我创建其内容的File []数组。我是否必须遍历它返回的列表以查找匹配的文件实例,或者我可以使用更好的方法吗?

2 个答案:

答案 0 :(得分:1)

如果你愿意使用第三方罐子,我建议:
http://commons.apache.org/io/api-release/org/apache/commons/io/FileUtils.html
否则,您必须编写自己的方法以递归方式迭代文件夹。

答案 1 :(得分:0)

我会在这里记下我是如何解决的:

public static File[] getDirectoryList(File file) {
    File[] files = file.listFiles(new FileFilter() {
        public boolean accept(File file) {
            return file.isDirectory();
        }
    });
    return files;
}

此处的代码获取File istance的所有子目录。由于两个目录树相同,因此文件树中相应的2个文件内容返回的File []列表将相同。

如果您想要包含目录中包含的所有文件,请更改“return file.isDirectory();”行。 “return file.isFile();”。