0

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

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

我可以:

file.getParent()

我明白了

ah

但如果我这样做

file.exists()

我得到错误的回报。

为什么?

4

3 回答 3

2

getParent () 只是解析给定的路径并删除最后一个斜杠后的最后一部分。然而exists() 执行一个真正的检查。我猜你的文件确实不存在于这个位置。要检查您的当前目录,请执行 new File(".").getAbsolutePath () 并相应地修改您的路径。

于 2013-07-26T15:24:22.563 回答
0
File file = new File("ah/myfile.text");

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

输出:

ah
false

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

于 2013-07-26T15:19:05.857 回答
0

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

你的意思是你有一个(潜在)文件的路径ah/myfile.text,但它可能既不存在文件也不存在父目录。它的父母仍然ah/是。

您还可以通过执行检查父母是否存在file.getParentFile().exists();

于 2013-07-26T15:24:48.957 回答