在java中获取目录名称

时间:2010-06-09 21:12:12

标签: java file-io

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

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

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

5 个答案:

答案 0 :(得分: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

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

答案 1 :(得分:9)

使用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();

我(稍微)喜欢这种方式,因为一个人正在操纵路径而不是文件,这更好地显示了意图。您可以在Legacy File I/O Code教程

中了解文件和路径之间的差异

答案 2 :(得分:6)

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

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

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

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

答案 3 :(得分:0)

File file = new File("d:/test/test.java");
String dirName = file.getParentFile().getName();

答案 4 :(得分:0)

假设您在 test.java 目录中有一个名为 C:\\myfolder 的文件。使用以下代码,您可以找到该文件所在的目录。

String fileDirectory = new File("C:\\myfolder\\test.java").getAbsolutePath(); 
fileDirectory = fileDirectory.substring(0,fileDirectory.lastIndexOf("\\"));

此代码将输出为 C:\\myfolder