在java中获取目录名称

Jon*_*ony 17 java file-io

如何java.io.File在Java中获取驱动器上特定目录的名称?

例如,我有一个test.java在D驱动器上的目录下调用的文件.

我想返回此文件的目录名称.

ska*_*man 34

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
Run Code Online (Sandbox Code Playgroud)

请记住,java.io.File代表目录和文件.


Pap*_*ter 10

使用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();
Run Code Online (Sandbox Code Playgroud)

我(稍微)喜欢这种方式,因为一个人正在操纵路径而不是文件,这更好地显示了意图.您可以在传统文件I/O代码教程中了解文件和路径之间的差异


小智 6

另请注意,如果以这种方式创建文件(假设"d:/ test /"是当前工作目录):

File file = new File("test.java");
Run Code Online (Sandbox Code Playgroud)

您可能会感到惊讶,getParentFile()和getParent()都返回null.无论文件是如何创建的,都使用这些来获取父目录:

File parentDir = file.getAbsoluteFile().getParentFile();
String parentDirName = file.getAbsoluteFile().getParent();
Run Code Online (Sandbox Code Playgroud)