gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:35:29 26 4
gpt4 key购买 nike

这太疯狂了。 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com