5 Stimmen

Warum kann das neue Path-Objekt von Java 7 nicht relativieren, wenn nur ein Path ein Root-Element enthält?

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);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X