Как получить имя каталога для определенного java.io.File на диске в Java?
Например, у меня есть файл под названием test.java в каталоге на моем диске D.
Я хочу вернуть имя каталога для этого файла.
Ответ 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. Используйте их, чтобы получить родительский каталог независимо от того, как был создан файл: