如何使用File对象获取文件的目录?

Koe*_*err 102 java file

考虑一下代码:

File file = new File("c:\\temp\\java\\testfile");
Run Code Online (Sandbox Code Playgroud)

testfile是一个文件,它可能存在也可能不存在.我想c:\\temp\\java\\使用该File对象获取目录.我该怎么做呢?

Jon*_*eet 159

在任何一种情况下,我都希望file.getParent()(或file.getParentFile())给你你想要的东西.

此外,如果你想找出原来是否File 确实存在,并且一个目录,然后exists()isDirectory()你以后在做什么.

  • 请小心使用file.getParent(),因为在某些情况下它可能会返回null. (9认同)

Joe*_*oel 24

Java文档中的File.getParent()


小智 9

如果您这样做:

File file = new File("test.txt");
String parent = file.getParent();
Run Code Online (Sandbox Code Playgroud)

parent 将为null.

因此,要获取此文件的目录,您可以执行下一步:

parent = file.getAbsoluteFile().getParent();
Run Code Online (Sandbox Code Playgroud)


YoK*_*YoK 8

文件API File.getParentFile.getParentFile应该返回文件目录.

你的代码应该是这样的:

    File file = new File("c:\\temp\\java\\testfile");
    if(!file.exists()){
        file = file.getParentFile();
    }
Run Code Online (Sandbox Code Playgroud)

您还可以使用File.isDirectory API 检查您的父文件是否为目录

if(file.isDirectory()){
    System.out.println("file is directory ");
}
Run Code Online (Sandbox Code Playgroud)