Java文件构造 - 为什么我得到不同的结果?

pst*_*ton 2 java file

我刚刚偶然发现了一个奇怪的场景,我想知道是否有人可以解释这种行为.

情况1:

File base = new File("");
System.out.println(base.getAbsolutePath());
System.out.println(base.isDirectory());
System.out.println(base.canRead());
Run Code Online (Sandbox Code Playgroud)

结果:

C:\workspace-sss\Commons
false
false
Run Code Online (Sandbox Code Playgroud)

案例2:

File base = new File("C:/workspace-sss/Commons");
System.out.println(base.getAbsolutePath());
System.out.println(base.isDirectory());
System.out.println(base.canRead());
Run Code Online (Sandbox Code Playgroud)

结果:

C:\workspace-sss\Commons
true
true
Run Code Online (Sandbox Code Playgroud)

如果两个File对象的绝对路径相等,为什么它们的处理方式不同?

Chr*_*ung 5

如果您使用new File("."),则应该获得当前目录的正确结果.

  • 好吧,因为""不是有效的文件名,而是"." 是(并引用当前目录).因此,在我看来,""甚至部分有效的事实纯粹是偶然的. (5认同)