new File(parent, child) when child is absolute

Alan Bateman Alan.Bateman at oracle.com
Sat Apr 27 07:34:17 UTC 2013


On 27/04/2013 04:14, Weijun Wang wrote:
> I thought that in this case parent is just ignored and it's still the 
> child itself. Turns out this is not true, and
>
>    new File("/tmp", "/etc/passwd") is /tmp/etc/passwd
>
> Is this really useful in any way?
I agree this isn't always obvious but this is how this method was 
originally specified (JDK1.1, maybe JDK1.0). I've no doubt that 
attempting to change it now would cause breakage, particularly Windows 
where a file path such as "/etc/passwd" is a relative path. Can you use 
java.nio.file.Path for what you are doing? It has resolve methods that 
do the right thing.

-Alan.



More information about the core-libs-dev mailing list