【问题标题】:java.io.File exists() sometimes returns incorrect resultjava.io.File exists() 有时会返回不正确的结果
【发布时间】:2015-06-17 06:56:08
【问题描述】:

我在 java 中遇到了一个问题 file.exists() 有时会给出不正确的结果。当文件实际存在直到它返回false 时,我在我们的应用程序中观察到相同的行为。我在 GFS2 挂载目录中观察到了这种行为。

请建议,如果有人知道替代方案或解决此问题,请尽早通知我。我正在使用 java 1.7。

【问题讨论】:

  • 如果您没有权限,file.exists() 将返回 false。而是使用file.getAbsoluteFile().exists()
  • 能否请您简要介绍一下 file.getabsoluteFile().exists() 如何返回比 File.exists() 可靠的结果。如果它在某个地方被证明。

标签: java file-io


【解决方案1】:

如果您找到file.exists(),则返回false 尝试使用file.getAbsoluteFile().exists(),这将返回 true。

getAbsolutePath 返回此抽象路径名的绝对形式。这等效于 new File(this.getAbsolutePath())

这个问题有答案here,但没有接受的答案。

这似乎是bug

一个丑陋的解决方法是对所有出现的 File 对象使用 getAbsoluteFile() 来自“未知”来源

【讨论】:

    猜你喜欢
    • 2016-06-04
    • 2016-05-28
    • 2012-04-11
    • 2016-02-06
    • 2017-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-16
    相关资源
    最近更新 更多