在 mac,osx 上,当我这样做时:
File file = new File("ah/myfile.text");
我可以:
file.getParent()
我明白了
ah
但如果我这样做
file.exists()
我得到错误的回报。
为什么?
getParent () 只是解析给定的路径并删除最后一个斜杠后的最后一部分。然而exists() 执行一个真正的检查。我猜你的文件确实不存在于这个位置。要检查您的当前目录,请执行 new File(".").getAbsolutePath () 并相应地修改您的路径。
File file = new File("ah/myfile.text");
System.out.println(file.getParent());
System.out.println(file.exists());
输出:
ah
false
我得到相同的结果。获取父级必须将路径解析为字符串,即使文件和/或目录不存在。
AFile
不一定必须存在。它可能是对系统上已有文件的引用,也可能是对系统上可能存在的文件的引用。
你的意思是你有一个(潜在)文件的路径ah/myfile.text
,但它可能既不存在文件也不存在父目录。它的父母仍然ah/
是。
您还可以通过执行检查父母是否存在file.getParentFile().exists();