我遇到了一个错误,我似乎找不到背后的任何逻辑。我有这个 File 对象,它是这样创建的:
File file = new File("utilities/data/someTextFile.txt");
然后我做 file.exists()
,它返回 false
(!?)。如果找不到该文件,我将 f.getAbsolutePath()
记录到一个文件中。当我查看路径时,似乎还可以。我可以将完整路径复制并粘贴到 Windows 的“运行”窗口中,文件可以正常打开。
该文件始终存在,并且在我的应用程序运行期间不会被删除或更改。它位于本地机器上。
这似乎只发生在某些情况下。我可以随时重现故障,但我确信文件对象的路径不会因我为重现故障所做的操作而改变。
什么会导致 file.exists()
返回 false?这与权限或文件锁等有关吗?
原文由 atsjoo 发布,翻译遵循 CC BY-SA 4.0 许可协议
我在 Windows 7 上看到以下情况:
有问题的文件是“var\log”,绝对路径确实指的是普通子目录(不是虚拟存储)中的现有文件。这是从 IDE 中看到的。