Как получить имя каталога для определенного java.io.File
на диске в Java?Получение имени каталога в java
Например, у меня есть файл с именем test.java
под каталогом на моем диске D.
Я хочу вернуть имя каталога для этого файла.
Как получить имя каталога для определенного java.io.File
на диске в Java?Получение имени каталога в java
Например, у меня есть файл с именем test.java
под каталогом на моем диске D.
Я хочу вернуть имя каталога для этого файла.
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
представляет собой каталоги, а также файлы.
Заметим также, что если вы создаете файл таким образом (предположим, "d:/тест /" является текущий рабочий каталог):
File file = new File("test.java");
Вы можете быть удивлены тем, что оба getParentFile() и GetParent() возврат null. Используйте их, чтобы получить родительский каталог независимо от того, как был создан файл:
File parentDir = file.getAbsoluteFile().getParentFile();
String parentDirName = file.getAbsoluteFile().getParent();
С 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();
I (немного) предпочитают этот путь, потому что один манипулирует дорогой, а не файлами, что imho лучше показывает намерения. Вы можете прочитать о различиях между файлом и путём в уроке Legacy File I/O Code
спасибо, что я смотрел на – Jony
@skaffman Не могу получить имя родительского каталога из имени файла? – alhelal