今天注意到这一点。

假定在Java进程(Windows)的PWD中存在一个名为“existing”的文件。

new File("existing").exists() => true
new File("", "existing").exists() => false
new File(".", "existing").exists() => true

我会从javadoc中预料到,依赖于系统的默认目录将是“。”。这些都是真的,所以这出乎意料。

有什么想法吗?

谢谢!

-罗杰-

最佳答案

两个参数的构造函数需要一个父目录名称,因此第二行将查找相对路径为“/ existing”的文件。在linux类型的系统上,“/”是根(据我所知),因此/ existing非常不可能存在。在Windows上,我不确定默认情况下它的解释方式,但是如果我打开命令行并说cd /Desktop(工作目录是我的用户文件夹),它会说找不到指定的路径。

10-01 18:00