Java在类File中的相对路径

时间:2011-08-20 06:50:40

标签: java file path

这是我的代码:

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;

2 个答案:

答案 0 :(得分:2)

如果您真的只想将当前工作目录放在字符串中,只需使用System.getProperty("user.dir"),请参阅System Properties

否则,您必须使用.作为“当前工作目录”,并使用File#getCanonicalPath()获取此File对象的规范表示。另请参阅File#getCanonicalFile()

答案 1 :(得分:0)

关于第一个问题:File("")是有效路径,相当于System.getProperty("user.dir")。它不是该路径中的有效文件或目录(它仍然有一个路径。这是一个完全相对的路径,因此当您调用getPath()时,它将返回一个空字符串,因为没有找到名称的文件“ ”

你的第二个问题“。”是一个目录,它存在,并且它的相对路径也是“”,因此在调用getPath时,您将看到路径“”+目录名称“。”