I’ve just stumbled on a weird scenario and am wondering if anyone can explain this behaviour.
Case 1:
File base = new File("");
System.out.println(base.getAbsolutePath());
System.out.println(base.isDirectory());
System.out.println(base.canRead());
Result:
C:\workspace-sss\Commons
false
false
Case 2:
File base = new File("C:/workspace-sss/Commons");
System.out.println(base.getAbsolutePath());
System.out.println(base.isDirectory());
System.out.println(base.canRead());
Result:
C:\workspace-sss\Commons
true
true
If the absolute path of the two File objects are equal, why are they treated differently?
If you used
new File("."), you should get the correct results for the current directory.