Làm cách nào để tạo đối tượng java.nio.file.Path
từ đối tượng String
trong Java 7?Tạo đường dẫn từ chuỗi trong Java7
I.e.
String textPath = "c:/dir1/dir2/dir3";
Path path = ?;
nơi thiếu mã sử dụng textPath
.
Làm cách nào để tạo đối tượng java.nio.file.Path
từ đối tượng String
trong Java 7?Tạo đường dẫn từ chuỗi trong Java7
I.e.
String textPath = "c:/dir1/dir2/dir3";
Path path = ?;
nơi thiếu mã sử dụng textPath
.
Bạn chỉ có thể sử dụng lớp Paths
:
Path path = Paths.get(textPath);
... giả sử bạn muốn sử dụng hệ thống tập tin mặc định, tất nhiên.
Từ javadocs .. http://docs.oracle.com/javase/tutorial/essential/io/pathOps.html
Path p1 = Paths.get("/tmp/foo");
cũng giống như
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");
Trong Windows, tạo ra tập tin C: \ joe \ logs \ foo.log (giả sử người dùng tại nhà như C : \ joe)
Trong Unix, tạo ra tập tin /u/joe/logs/foo.log (giả sử người dùng tại nhà như là/u/joe)
Tôi đề nghị sử dụng 'File.separarator' thay vì quan tâm đến hệ điều hành hiện tại. Ví dụ. '"/tmp/foo "' là 'File.separator +" tmp "+ File.separator +" foo "' –
Tôi đoán nó không tạo ra tập tin thực tế, nhưng nó tạo ra một đối tượng Path. Bạn có thể sử dụng đối tượng đường dẫn để tạo tệp thực trên đĩa, sử dụng Files.createFile (logfilePath). –
Nếu có thể tôi sẽ khuyên bạn nên tạo các Path
trực tiếp từ các yếu tố đường dẫn:
Path path = Paths.get("C:", "dir1", "dir2", "dir3");
// if needed
String textPath = path.toString(); // "C:\\dir1\\dir2\\dir3"
là nền tảng độc lập này? –
Cảm ơn bạn! Tôi đã đi với một cái gì đó như 'Path path = FileSystems.getDefault(). GetPath (textPath);' nhưng dường như sai với tôi! –
@mat_boy: Tại sao? Chúng tương đương. Theo cách nào thì "có vẻ sai" đối với bạn? –
Vì tôi là người giả! Bạn nói đúng, tuyệt đối! Tôi cần rất nhiều phần còn lại! –