2013-06-04 36 views

Trả lời

263

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.

+1

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! –

+4

@mat_boy: Tại sao? Chúng tương đương. Theo cách nào thì "có vẻ sai" đối với bạn? –

+2

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! –

12

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)

+4

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 "' –

+0

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). –

4

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" 
+0

là nền tảng độc lập này? –

Các vấn đề liên quan