在mac,osx上,当我这样做时:
File file = new File("ah/myfile.text");
我能做到:
file.getParent()
我得到了
ah
但如果我这样做
file.exists()
我得到了错误的回复。
为什么?
答案 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();