【问题标题】:java : File.getAbsoluteFile().exists() v/s File.exists()java : File.getAbsoluteFile().exists() v/s File.exists()
【发布时间】:2015-02-22 09:56:41
【问题描述】:

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

File folder = new File(PATH);

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

使用哪一个?

感谢您浏览此处。

【问题讨论】:

  • @AlexanderArutinyants : 你能详细说明一下吗?
  • 你可以同时使用这两个条件。

标签: java file file-handling


【解决方案1】:

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

folder.exists()

【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

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

        另外你可以参考这个链接..

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

        希望这会有所帮助!

        【讨论】:

          【解决方案5】:

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

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

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

          【讨论】:

            猜你喜欢
            • 2015-09-13
            • 1970-01-01
            • 2016-01-22
            • 2020-01-17
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-11-03
            相关资源
            最近更新 更多