Bagaimana saya bisa membuat java.nio.file.Pathobjek dari Stringobjek 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.Pathobjek dari Stringobjek di Java 7?
Yaitu
String textPath = "c:/dir1/dir2/dir3";
Path path = ?;
di mana ?kode hilang yang digunakan textPath.
Jawaban:
Anda bisa menggunakan Pathskelas:
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\p2di Windows dan lib/p2di 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.separaratordaripada merawat OS saat ini. Misalnya "/tmp/foo"adalahFile.separator+"tmp"+File.separator+"foo"
Jika memungkinkan, saya sarankan untuk membuat Pathlangsung 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 Pathkelas 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.