指定路径时文件不存在

时间:2013-07-26 15:15:14

标签: java macos file filepath java-io

在mac,osx上,当我这样做时:

File file = new File("ah/myfile.text");

我能做到:

file.getParent()

我得到了

ah

但如果我这样做

file.exists()

我得到了错误的回复。

为什么?

3 个答案:

答案 0 :(得分:2)

getParent()只解析给定的路径并删除最后一个斜杠后的最后一个部分。但是exists()执行真正的检查。我认为yor文件确实不存在于此位置。要检查当前目录,请执行新文件(“。”)。getAbsolutePath()并相应地修改路径。

答案 1 :(得分:0)

File file = new File("ah/myfile.text");

System.out.println(file.getParent());
System.out.println(file.exists());

输出:

ah
false

我得到了相同的结果。获取父级必须将路径解析为字符串,即使文件和/或目录不存在也是如此。

答案 2 :(得分:0)

File不一定必须存在。它可以是对系统上已有文件的引用,也可以是可能在系统上的文件。

你所说的是你有ah/myfile.text的(潜在)文件的路径,但可能是文件和父目录都不存在。它的父母仍然是ah/

您还可以通过执行file.getParentFile().exists();

来检查父级是否存在