Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java6中的遍历文件树_Java_File_Filesystems - Fatal编程技术网

Java6中的遍历文件树

Java6中的遍历文件树,java,file,filesystems,Java,File,Filesystems,我试图找到一种方法,在Java6中定位计算机目录中的某个文件。更具体地说,我的程序通过在硬盘上定位Pymol.exe并执行命令来启动程序Pymol。通过使用文件访问接口,我可以在Java7中很好地工作。但是,我正在尝试使它与Java6兼容,因此我需要找到另一种方法来定位这个程序(或者确定用户没有安装它)。有什么想法吗?只要在文件目录中进行递归树遍历,直到找到文件或遍历结束。试试看 File findFile(String name, File dir) { for (File f : d

我试图找到一种方法,在Java6中定位计算机目录中的某个文件。更具体地说,我的程序通过在硬盘上定位Pymol.exe并执行命令来启动程序Pymol。通过使用文件访问接口,我可以在Java7中很好地工作。但是,我正在尝试使它与Java6兼容,因此我需要找到另一种方法来定位这个程序(或者确定用户没有安装它)。有什么想法吗?

只要在文件目录中进行递归树遍历,直到找到文件或遍历结束。

试试看

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,而不是遍历根目录中的其他文件夹。这就是我的想法。获取所有文件。然后在他们身上做第二次跑步。获取文件、执行任务、获取文件和忽略文件更有效。