java:File.getAbsoluteFile()。exists()v / s File.exists()

时间:2014-12-24 09:03:56

标签: java file file-handling

我想在创建新文件夹之前检查文件夹存在。 对于我需要使用的方法:

File folder = new File(PATH);

检查相同的方法有两种方法 1)folder.getAbsoluteFile().exists()     OR
2)folder.exists()

使用哪一个?

感谢您在这里寻找。

5 个答案:

答案 0 :(得分:3)

在正常情况下,这两个表达式的结果没有区别。所以,使用更简单的:

folder.exists()

答案 1 :(得分:2)

首先阅读exists上的Oracle文档。并且getAbsoluteFile

自己回答getAbsoluteFile做了什么? 然后回答你自己你需要得到你的文件夹抽象路径名的绝对形式?它对你有什么帮助吗?

如果没有,请使用最简单易用的易读方法folder.exists()

在编码中,我们总是尽量不做不必要的事情,以保持我们的代码快速,清晰,易读,易于理解和更新。

答案 2 :(得分:1)

通常首选folder.exists(),因为它适用于abstract pathname

另一方面,getAbsoluteFile()等同于new File(this.getAbsolutePath()),它返回此抽象路径名的绝对形式。

答案 3 :(得分:0)

您也可以同时使用这两个条件。

此外,您可以参考此链接..

How to create a file -- including folders -- for a given path?

希望这会有所帮助!

答案 4 :(得分:0)

folder.exist()检查目录是否存在于抽象路径中,当且仅当该抽象路径名表示的文件或目录存在时,它才返回true;否则就是假的。

folder.getAbsoluteFile().exists()在这种情况下,它返回此抽象路径名的绝对形式。等效于new File(this.getAbsolutePath()).exist()并检查文件夹是否存在于指定的绝对路径上。

所以你可以使用其中任何一个,只是区别在于抽象路径和绝对路径,但是对于我的公开,你应该使用folder.exist(),因为它会避免创建new File