因此,对于一个项目,我有2个目录结构。这些目录位于2个不同的位置,它们各自的目录结构和文件内容是等效的(只是文件的内容不同)。
现在我想通读这两个目录树,创建它们包含的文件的“组合”。
清晰的例子;两个目录树看起来像这样:
directory1
directory2
file1
file2
file3
file4
现在我想要匹配两个目录树中的file1的两个File实例。
java File类只允许我创建其内容的File []数组。我是否必须遍历它返回的列表以查找匹配的文件实例,或者我可以使用更好的方法吗?
答案 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();”。