Относительный путь Java в классе File - PullRequest
0 голосов
/ 20 августа 2011

вот мой код:

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 ]

2 голосов
/ 20 августа 2011

Если вы действительно хотите иметь текущий рабочий каталог в строке, вы можете просто использовать System.getProperty("user.dir"), см. Свойства системы .

В противном случае вам придется использовать . для «текущего рабочего каталога» и используйте File # getCanonicalPath () , чтобы получить каноническое представление этого File объекта.Также см. Файл # getCanonicalFile () .

0 голосов
/ 20 августа 2011

На ваш первый вопрос: File("") является допустимым путем и эквивалентно System.getProperty("user.dir").Это не допустимый файл или каталог в этом пути (хотя он все еще имеет путь. Это совершенно относительный путь, поэтому при вызове getPath() он вернет пустую строку, поскольку файл с именем "" не найден.

Ваш второй вопрос "." - это каталог, он существует, и у него также есть относительный путь "", поэтому при вызове getPath вы увидите путь "" + имя каталога "."

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...