Подтвердить что ты не робот

Получение имени каталога в java

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

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

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

4b9b3361

Ответ 1

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 представляет каталоги, а также файлы.

Ответ 2

С 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();

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

Ответ 3

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

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

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

File parentDir = file.getAbsoluteFile().getParentFile();
String parentDirName = file.getAbsoluteFile().getParent();