Eines der wirklich netten Dinge über java.io.File
ist, dass es Pfade zu einem vorhersagbaren Format normalisieren kann.Java: Wie normalisiert man Pfade mit nio Path?
new File("/", inputPath).getPath()
gibt immer eine Zeichenfolge mit relativen Pfaden normalisiert aus und immer mit vorhersagbaren Pfadtrennzeichen beginnt und endet.
Gibt es eine Möglichkeit, dies mit den neuen Klassen Path
oder Paths
zu tun?
(Beachten Sie auch, dass ich mit abstrakten Wegen für andere Systeme zu tun habe, das hat nichts mit einem lokalen Dateisystem zu tun)
Weitere Beispiele für Verhalten mag ich:
- "/foo" -> "/foo"
- "//foo/" -> "/foo"
- "foo/" -> "/foo"
- "foo/bar" -> "/foo/bar"
- "foo/bar/../baz" -> "/foo/baz"
- "foo//bar" -> "/foo/bar"
Die Gründe möchte ich die nio-API verwenden sind nette Zusätze wie Paths.get() (die sich sauberer anfühlt als neue File()) und Path-Pfad(). Ich versuche nur, diese mit der bestehenden Einfachheit der Normalisierung zu mischen, die wir mit neuer Datei ("/", Eingabe) bekommen. – TREE
Und ich kann auch als Kommentar zum Universum hinzufügen, dass es sehr verwirrend ist, dass java.io.FileSystem und java.nio.file.FileSystem beide existieren. – TREE
Siehe Bearbeiten meiner Antwort (und ich weiß nicht, wo Sie 'java.io.FileSystem' überhaupt gesehen haben) – fge