Wie kann ich ein java.nio.file.Path
Objekt aus einem String
Objekt in Java 7 erstellen ?
Dh
String textPath = "c:/dir1/dir2/dir3";
Path path = ?;
Wo ?
ist der fehlende Code, der verwendet textPath
.
Wie kann ich ein java.nio.file.Path
Objekt aus einem String
Objekt in Java 7 erstellen ?
Dh
String textPath = "c:/dir1/dir2/dir3";
Path path = ?;
Wo ?
ist der fehlende Code, der verwendet textPath
.
Antworten:
Sie können einfach die Paths
Klasse verwenden:
Path path = Paths.get(textPath);
... vorausgesetzt, Sie möchten natürlich das Standard-Dateisystem verwenden.
Path.get()
ist plattformunabhängig? Das heißt, das Path.get("lib","p2")
wird wie lib\p2
unter Windows und lib/p2
Linux sein
Von der javadocs .. http://docs.oracle.com/javase/tutorial/essential/io/pathOps.html
Path p1 = Paths.get("/tmp/foo");
ist das gleiche wie
Path p4 = FileSystems.getDefault().getPath("/tmp/foo");
Path p3 = Paths.get(URI.create("file:///Users/joe/FileTest.java"));
Path p5 = Paths.get(System.getProperty("user.home"),"logs", "foo.log");
Erstellt unter Windows die Datei C: \ joe \ logs \ foo.log (unter der Annahme, dass der Benutzer zu Hause als C: \ joe ist). Erstellt unter
Unix die Datei /u/joe/logs/foo.log (unter der Annahme, dass der Benutzer als / u / joe zu Hause ist).
File.separarator
anstatt sich um das aktuelle Betriebssystem zu kümmern. ZB "/tmp/foo"
istFile.separator+"tmp"+File.separator+"foo"
Wenn möglich würde ich vorschlagen, die Path
Elemente direkt aus dem Pfad zu erstellen :
Path path = Paths.get("C:", "dir1", "dir2", "dir3");
// if needed
String textPath = path.toString(); // "C:\\dir1\\dir2\\dir3"
Selbst wenn es um Java 7 geht, ist es meiner Meinung nach ein Mehrwert zu wissen, dass es ab Java 11 eine statische Methode gibt Path
Klasse gibt, die dies sofort ermöglicht:
Mit dem ganzen Pfad in einem String:
Path.of("/tmp/foo");
Mit dem Pfad in mehrere Strings unterteilt:
Path.of("/tmp","foo");
Paths.get
.