2013-06-04 19 views

Odpowiedz

263

można po prostu użyć klasy Paths:

Path path = Paths.get(textPath); 

... zakładając, że chcesz korzystać z domyślnego systemu plików, oczywiście.

+1

Dziękujemy! Wybrałem coś w stylu 'Path path = FileSystems.getDefault(). GetPath (textPath);' ale wydaje mi się to złe! –

+4

@mat_boy: Dlaczego? Są one równoważne. W jaki sposób "wydaje ci się to złe"? –

+2

Ponieważ jestem manekinem! Masz rację, absolutnie! Potrzebuję dużo odpoczynku! –

12

Z Javadocs .. http://docs.oracle.com/javase/tutorial/essential/io/pathOps.html

Path p1 = Paths.get("/tmp/foo"); 

jest taka sama jak

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"); 

W Windows tworzy plikowi C: \ Joe \ Logs \ foo.log (zakładając użytkownika domowego jak C : \ joe) W systemie Unix tworzy plik /u/joe/logs/foo.log (zakładając, że użytkownik ma jako/u/joe)

+4

Proponuję użyć 'File.separarator' zamiast dbać o bieżący system operacyjny. Na przykład. '/ tmp/foo" 'to' File.separator + "tmp" + File.separator + "foo" ' –

+0

Domyślam się, że nie tworzy rzeczywistego pliku, ale tworzy obiekt Path. Możesz użyć obiektu ścieżki do utworzenia rzeczywistego pliku na dysku, używając Files.createFile (logfilePath). –

4

Jeśli to możliwe chciałbym zaproponować stworzenie Path bezpośrednio z elementami ścieżki:

Path path = Paths.get("C:", "dir1", "dir2", "dir3"); 
// if needed 
String textPath = path.toString(); // "C:\\dir1\\dir2\\dir3" 
+0

jest niezależny od platformy? –

Powiązane problemy