Gemäß java.nio.file.Path
:
Ein relativer Pfad kann nicht konstruiert werden, wenn nur einer der Pfade eine Root-Komponente hat.
Warum ist das so? Warum ist es nicht möglich, so zu relativieren:
Path path1 = Paths.get("/home/test");
Path path2 = Paths.get("home");
// throws an IllegalArgumentException
Path path3 = path1.relativize(path2);
Ich hatte mir vorgestellt, dass path3
würde zu dem relativen Pfad führen ../
. Warum gilt sie für Path
ein Ergebnis liefert, das nahelegt, dass zwei Verzeichnisse auf derselben Ebene im Dateisystem liegen, wenn keine Root-Elemente definiert sind, aber wenn nur ein Pfad ein Root-Element definiert (wie oben gezeigt), kann kein relativer Pfad bestimmt werden?
d.h.
Path path1 = Paths.get("home/test");
Path path2 = Paths.get("user");
// results in ../../user
Path path3 = path1.relativize(path2);