Получение имени каталога в Java - PullRequest
17 голосов
/ 10 июня 2010

Как получить имя каталога для конкретного java.io.File на диске в Java?

Например, у меня есть файл с именем test.java в каталоге на моем диске D.

Я хочу вернуть имя каталога для этого файла.

Ответы [ 3 ]

34 голосов
/ 10 июня 2010
File file = new File("d:/test/test.java");
File parentDir = file.getParentFile(); // to get the parent dir 
String parentDirName = file.getParent(); // to get the parent dir name

Помните, что java.io.File представляет каталоги и файлы.

9 голосов
/ 05 июня 2014

В Java 7 есть еще один способ сделать это:

Path path = Paths.get("d:/test/test.java"); 
Path parent = path.getParent();
//getFileName() returns file name for 
//files and dir name for directories
String parentDirName = path.getFileName().toString();

Я (немного) предпочитаю этот способ, потому что один манипулирует путем, а не файлами, что, как мне кажется, лучше показывает намерения.О различиях между файлом и путем вы можете прочитать в устаревшем коде ввода-вывода файла учебник

6 голосов
/ 25 сентября 2013

Также обратите внимание, что если вы создаете файл таким образом (предположим, что "d: / test /" является текущим рабочим каталогом):

File file = new File("test.java");

Вы можете быть удивлены, что оба getParentFile () и getParent () вернуть ноль.Используйте их, чтобы получить родительский каталог независимо от того, как был создан файл:

File parentDir = file.getAbsoluteFile().getParentFile();
String parentDirName = file.getAbsoluteFile().getParent();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...