Според java.nio.file.Path
:
Относителен път не може да бъде конструиран, ако само един от пътищата има основен компонент.
защо е така Защо не е възможно да се релативизира така:
Path path1 = Paths.get("/home/test");
Path path2 = Paths.get("home");
// throws an IllegalArgumentException
Path path3 = path1.relativize(path2);
Представях си, че path3
ще доведе до относителния път ../
. Защо е валидно за Path
да върне резултат, който предполага, че две директории се намират на едно и също ниво във файловата система, ако не са дефинирани коренни елементи, но когато само един път дефинира коренен елемент (както е показано по-горе), няма относителен път може да се определи?
i.e.
Path path1 = Paths.get("home/test");
Path path2 = Paths.get("user");
// results in ../../user
Path path3 = path1.relativize(path2);