在java中获取目录名称

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

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

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

 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表示目录和文件。

使用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 / O代码教程中阅读文件和路径之间的差异

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

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

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

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