java.io.File无法识别主目录的“〜”符号?

时间:2018-10-31 13:21:18

标签: java file io directory

我在Mac上试过了

touch ~/a.txt

然后是java文件:

import java.io.File;

public class testPwd {
    public static void main(String [] args) {
        File f = new File("~/a.txt");
        System.out.println(f.exists());
    }
}

它会打印出“ false”。

这是为什么? Java是否可以识别“〜”符号?如果我使用绝对路径,则此f.exists()返回true。

有什么解释吗?

1 个答案:

答案 0 :(得分:4)

  

这是为什么?

因为~符号只能由Unix shell理解(并且令人困惑,它在HTTP服务器中使用)。即使您用C编写程序,也无法理解~来指定当前用户的主目录。

要获取用户的主目录,请使用System.getProperty("user.home")。 (来自What is the best way to find the users home directory in Java?的答案)