Warum sollte das sein?Path.startsWith gibt false für einen Windows-Dateipfad unter Linux zurück
Path parent1 = Paths.get("/flugel/borf/noggin");
Path child1 = Paths.get("/flugel/borf/noggin/foo/bar/baz.jpg");
System.out.println("child1 startsWith parent1? " + child1.startsWith(parent1));
System.out.println(child1.getFileSystem());
System.out.println(parent1.getFileSystem());
Path parent2 = Paths.get("C:\\foo");
Path child2 = Paths.get("C:\\foo\\bar\\baz.jpg");
System.out.println("child2 startsWith parent2? " + child2.startsWith(parent2));
System.out.println(child2.getFileSystem());
System.out.println(parent2.getFileSystem());
kehrt
child1 startsWith parent1? true
[email protected]
[email protected]
child2 startsWith parent2? false
[email protected]
[email protected]
Ich bin Java 8 auf Ubuntu läuft, aber nichts über die javadocs für Path.startsWith
erklärt, warum dies geschieht. Kein Dateipfad enthält tatsächliche Dateien.
Ich dachte mir, dass so etwas passiert, aber es fühlt sich immer noch irgendwie überraschend an. – ben3000
Danke für den Link zum entsprechenden Quellcode, ich habe versucht, den falschen Abschnitt zu überspringen, und habe dies daher nicht bemerkt. Gute Antwort. – ben3000
Großartig! Stimme für die Antwort auf :-) – user987339