这是我的代码:
File file1 = new File("");
System.out.println(file1.exists()); // why the output is false?
System.out.println(file1.getAbsolutePath());
// assume that my current path is "d:/xxx/yyy"
File file2 = new File(".");
System.out.println(file2.getPath()); // i want to get ""
// but i actually get ".",
// which is not i want.
// so how can i get ""
总结一下,我想要的是类File的目标文件,当我调用时 file.getPath()返回“” 当我调用file.exists()时,它返回true;
答案 0 :(得分:2)
如果您真的只想将当前工作目录放在字符串中,只需使用System.getProperty("user.dir")
,请参阅System Properties。
否则,您必须使用.
作为“当前工作目录”,并使用File#getCanonicalPath()获取此File
对象的规范表示。另请参阅File#getCanonicalFile()。
答案 1 :(得分:0)
关于第一个问题:File("")
是有效路径,相当于System.getProperty("user.dir")
。它不是该路径中的有效文件或目录(它仍然有一个路径。这是一个完全相对的路径,因此当您调用getPath()
时,它将返回一个空字符串,因为没有找到名称的文件“ ”
你的第二个问题“。”是一个目录,它存在,并且它的相对路径也是“”,因此在调用getPath时,您将看到路径“”+目录名称“。”