java.io.File не может распознать символ "~" домашнего каталога? - PullRequest
0 голосов
/ 31 октября 2018

Я пробовал это на 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());
    }
}

Он печатает "ложь".

Почему это? Ява распознает символ "~"? Если я использую абсолютный путь, этот f.exists () возвращает true.

Есть объяснения?

1 Ответ

0 голосов
/ 31 октября 2018

Почему это?

Поскольку символ ~ понимается только оболочкой Unix (и, как ни странно, он использовался на HTTP-серверах). Даже если вы написали программу на C, она не поняла бы ~, чтобы указать домашний каталог текущего пользователя.

Чтобы получить домашний каталог пользователя, используйте System.getProperty("user.home"). (Ответ от Какой лучший способ найти домашний каталог пользователей на Java? )

...