Bagaimana saya bisa membuat java.nio.file.Path
objek dari String
objek di Java 7?
Yaitu
String textPath = "c:/dir1/dir2/dir3";
Path path = ?;
di mana ?
kode hilang yang digunakan textPath
.
Bagaimana saya bisa membuat java.nio.file.Path
objek dari String
objek di Java 7?
Yaitu
String textPath = "c:/dir1/dir2/dir3";
Path path = ?;
di mana ?
kode hilang yang digunakan textPath
.
Jawaban:
Anda bisa menggunakan Paths
kelas:
Path path = Paths.get(textPath);
... dengan asumsi Anda ingin menggunakan sistem file default, tentu saja.
Path.get()
platform independen? artinya Path.get("lib","p2")
akan seperti lib\p2
di Windows dan lib/p2
di linux
Dari javadocs .. http://docs.oracle.com/javase/tutorial/essential/io/pathOps.html
Path p1 = Paths.get("/tmp/foo");
sama dengan
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");
Di Windows, buat file C: \ joe \ logs \ foo.log (dengan asumsi rumah pengguna sebagai C: \ joe)
Di Unix, buat file /u/joe/logs/foo.log (dengan asumsi rumah pengguna sebagai / u / joe)
File.separarator
daripada merawat OS saat ini. Misalnya "/tmp/foo"
adalahFile.separator+"tmp"+File.separator+"foo"
Jika memungkinkan, saya sarankan untuk membuat Path
langsung dari elemen path:
Path path = Paths.get("C:", "dir1", "dir2", "dir3");
// if needed
String textPath = path.toString(); // "C:\\dir1\\dir2\\dir3"
Bahkan ketika pertanyaannya tentang Java 7, saya pikir itu menambah nilai untuk mengetahui bahwa dari Java 11 dan seterusnya, ada metode statis di Path
kelas yang memungkinkan untuk melakukan ini langsung:
Dengan semua jalur dalam satu String:
Path.of("/tmp/foo");
Dengan jalur yang dipecah dalam beberapa String:
Path.of("/tmp","foo");
Paths.get
.