2013-06-04 11 views

risposta

263

si può semplicemente utilizzare la classe Paths:

Path path = Paths.get(textPath); 

... supponendo che si desidera utilizzare il file system di default, naturalmente.

+1

Grazie! Stavo andando con qualcosa come 'Path path = FileSystems.getDefault(). GetPath (textPath);' ma mi sembra sbagliato! –

+4

@mat_boy: Perché? Sono equivalenti. In che modo ti "sembra sbagliato"? –

+2

Perché sono un manichino! Hai ragione, assolutamente! Ho bisogno di molto riposo! –

12

Dalle javadocs .. http://docs.oracle.com/javase/tutorial/essential/io/pathOps.html

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

è lo stesso di

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

In Windows, file crea C: home \ joe \ logs \ foo.log (utente assumendo come C : \ joe)
In Unix, crea file di casa /u/joe/logs/foo.log (supponendo dell'utente come/u/joe)

+4

Suggerisco di usare 'File.separarator' invece di occuparmi del sistema operativo corrente. Per esempio. '"/tmp/foo "' è 'File.separator +" tmp "+ File.separator +" foo "' –

+0

Suppongo che non crei il file vero e proprio, ma crei un oggetto Path. È possibile utilizzare l'oggetto percorso per creare il file effettivo su disco, utilizzando Files.createFile (logfilePath). –

4

Se possibile vorrei suggerire la creazione del Path direttamente dagli elementi di percorso:

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

questa piattaforma è indipendente? –

Problemi correlati