2010-06-09 2 views
12

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

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

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

ответ

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

+0

спасибо, что я смотрел на – Jony

+0

@skaffman Не могу получить имя родительского каталога из имени файла? – alhelal

4

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

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

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

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

С 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

Смежные вопросы