创建的文件没有父级?

17

在Java程序中,我使用以下代码创建一个文件:

File temp = new File("temp");
temp.createNewFile();

然后出于某些原因,当我编写以下代码时

File pDir = temp.getParentFile();

并且pDir为空。实际上我想写成

File pDir = temp.getParentFile().getParentFile();

但是那会抛出一个空指针异常。


它们不是自动创建在工作目录中吗?它确实会在那里创建文件,只是不返回任何父级。 - SSEMember
2个回答

44

你需要一个带路径的文件,尝试使用getAbsoluteFile。

File pDir = temp.getAbsoluteFile().getParentFile();

1
谢谢!这个完美地解决了问题。我一有机会就会接受它。 - SSEMember
有人能解释一下为什么我们不能写temp.getParentFile();吗? - Mystery

0
你正在创建一个名为temp的文件,但它没有路径,因此没有父路径。如果你想把文件放在当前目录下:
File temp = new File(System.getProperty("user.dir")+"/temp");
File parent = temp.getParentFile();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接