gpt4 book ai didi

Java 文件不存在,但 File.getAbsoluteFile() 存在

转载 作者:行者123 更新时间:2023-11-30 02:57:17 30 4
gpt4 key购买 nike

是否有人遇到过以下情况:java.io.File 不存在,但在文件实例上调用 getAbsoluteFile() 方法返回一个确实存在的文件。为什么会发生这种情况?

enter image description here

注意

  1. 我使用的是 Linux 和 Oracle Java 运行时版本 1.7.0_95-b00
  2. 我传入了 JVM 选项 -Duser.dir=/path/to/somewhere 启动tomcat实例

最佳答案

您可能不应该乱用user.dir。相反,请在启动 Tomcat 之前更改到该目录。

File.getAbsoluteFile() 假设 user.dir 是您真正所在的目录,但事实并非如此。

根据您的观察,我认为 File.exists() 在操作系统级别直接映射到 stat。而 File.getAbsoluteFile() 只是 new File(System.getProperty("user.dir"), getPath())

假设user.dir是操作系统当前的工作目录,这两种实现都是正确合理的。但就您的情况而言,它们有所不同,并且此(假设的)实现可以解释您所经历的情况。

关于Java 文件不存在,但 File.getAbsoluteFile() 存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36880692/

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