Java6中的遍历文件树
我试图找到一种方法,在Java6中定位计算机目录中的某个文件。更具体地说,我的程序通过在硬盘上定位Pymol.exe并执行命令来启动程序Pymol。通过使用文件访问接口,我可以在Java7中很好地工作。但是,我正在尝试使它与Java6兼容,因此我需要找到另一种方法来定位这个程序(或者确定用户没有安装它)。有什么想法吗?只要在文件目录中进行递归树遍历,直到找到文件或遍历结束。试试看Java6中的遍历文件树,java,file,filesystems,Java,File,Filesystems,我试图找到一种方法,在Java6中定位计算机目录中的某个文件。更具体地说,我的程序通过在硬盘上定位Pymol.exe并执行命令来启动程序Pymol。通过使用文件访问接口,我可以在Java7中很好地工作。但是,我正在尝试使它与Java6兼容,因此我需要找到另一种方法来定位这个程序(或者确定用户没有安装它)。有什么想法吗?只要在文件目录中进行递归树遍历,直到找到文件或遍历结束。试试看 File findFile(String name, File dir) { for (File f : d
File findFile(String name, File dir) {
for (File f : dir.listFiles()) {
if (f.isFile() && f.getName().equals(name)) {
return f;
}
}
for (File f : dir.listFiles()) {
if (f.isDirectory()) {
return findFile(name, f);
}
}
return null;
}
我想你应该在路径中找到它使用递归函数调用或更好的FileFilter来获取子目录。当我运行此方法时,它返回null,尽管我知道我要查找的文件在那里,但它似乎正在通过它遇到的第一个文件夹,检查名称,然后返回null,而不是遍历根目录中的其他文件夹。这就是我的想法。获取所有文件。然后在他们身上做第二次跑步。获取文件、执行任务、获取文件和忽略文件更有效。