类File的exists()方法如何工作?

时间:2013-04-19 13:51:04

标签: java file-io scjp

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

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]+$/:等正则表达式进行拆分,但这违反了我的期望因为该方法使用这些目录组\B:\eslam\xml\B:\eslam\xml\paper

返回false

2 个答案:

答案 0 :(得分:0)

你的循环范围不对吗?

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

答案 1 :(得分: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;}