0

早上好,我已经使用这些方法来检查某个文件是否存在于一组目录中:

public static boolean doesFileExist(String[] directories, String fileName) {
    String path = " ";
    for (String dir : directories) {
        path = path + File.separator + dir;

    }
    System.out.println(path);
    File file = new File(path, fileName);
    return file.exists();
}

我给该方法一个目录数组和一个实际存在于其中一个中的文件名,这是目录数组:

    static String[] direstories = { "B:\\eslam\\xml", "B:\\eslam\\xml\\paper" };

并且该文件ch23.pdf确实存在于第一个目录中,我认为该方法采用一组目录的整个字符串并根据正则表达式将其拆分,/^[A-z]+$/:但它违反了我的期望,因为该方法对这些目录组返回 false\B:\eslam\xml\B:\eslam\xml\paper

4

2 回答 2

0

该方法仅适用于单个路径,实际上文件实例应该只指向单个文件路径。

尝试这个:

public static boolean doesFileExist(String[] directories, String fileName) {
for (String dir : directories) {
    System.out.println(dir+ File.separator+fileName);
    File file = new File(dir, fileName);
    if(!file.exists()) return false;
}
return true;}
于 2013-04-19T14:01:31.910 回答
0

你的循环范围是不是错误的?

我认为您只会检查目录数组中的最后一个元素。

于 2013-04-19T13:54:02.350 回答