java.io.File.exists() 在 Windows 7 上失败

标签 java file windows-7

这太疯狂了。 Java 程序以可以想象到的最简单的方式失败。它从系统属性中查找位于 ${user.home} 中的配置文件。我记录了程序查找文件的位置,并验证了它正在查找的文件确实存在并且位于正确的位置。但是当程序运行时,它找不到配置文件(首先使用 `File.exists() 检查)。这是在运行 Windows 7 的 PC 上运行的。在许多其他运行 Windows 7 或 XP 的 PC 上运行相同的程序时不会发生这种情况。

起初,我认为我是在 XP 机器上使用远程桌面连接运行这个程序这一事实可能很重要。在 .NET file.exists() 上有一些与此相关的 Google 搜索结果。然而,当我的同事直接转到有问题的 PC 并尝试在本地运行该程序时,同样的事情发生了。

我被难住了。有人有什么想法吗?

代码如下:

static private File configDir = new File(System.getProperty("user.home"));
File configFile = new File(configDir, fileName);
log.debug("config file directory is " + configDir);
if (configFile.exists()) {
...
} else {
   log.info("Override Configuration from File System not found.");
}

最佳答案

我在编写面试解决方案时遇到了这个问题,结果证明是因为该文件实际上被调用了

foo.txt.txt

但显示为:

foo.txt

我强烈怀疑是这个问题还是上面评论中提到的权限问题导致了这个问题。但是,如果您可以以执行 Java 程序的同一用户身份打开文件,则可以排除权限问题。在 Windows 中,您可以单击显示文件扩展名的复选框。这是一个 link这演示了如何切换此行为。

关于java.io.File.exists() 在 Windows 7 上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8437921/

相关文章:

Java文本游戏解析器问题

c - 如何将 strtok 与每个非字母字符一起用作分隔符? (C)

读取.xlsx 'Error in loadWorkbook(file): Cannot find file' R

java - 测试文件是否打开

search - 如何(递归)搜索 Windows 7 中的所有文件内容?

c++ - 具有 Windows 7 外观的消息框

java - 是否可以使用 JAXB 获取属性的 DOM Attr?

java - 如何使 MDB 激活规范上下文属性可配置?

java - 在java中添加OWL SameAs axiom

java - 我可以确定我的 Java Web 应用程序在本地主机 :8080 is invisible from my fellow Starbucks customers? 上运行吗