Come posso creare un java.nio.file.Path
oggetto da un String
oggetto in Java 7?
ie
String textPath = "c:/dir1/dir2/dir3";
Path path = ?;
dove ?
è il codice mancante che utilizza textPath
.
Come posso creare un java.nio.file.Path
oggetto da un String
oggetto in Java 7?
ie
String textPath = "c:/dir1/dir2/dir3";
Path path = ?;
dove ?
è il codice mancante che utilizza textPath
.
Risposte:
Puoi semplicemente usare la Paths
classe:
Path path = Paths.get(textPath);
... supponendo che tu voglia utilizzare il file system predefinito, ovviamente.
Path.get()
indipendente dalla piattaforma? nel senso che Path.get("lib","p2")
sarà come lib\p2
in Windows e lib/p2
in Linux
Dal javadocs .. http://docs.oracle.com/javase/tutorial/essential/io/pathOps.html
Path p1 = Paths.get("/tmp/foo");
equivale a
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, crea il file C: \ joe \ logs \ foo.log (assumendo la home dell'utente come C: \ joe)
In Unix, crea il file /u/joe/logs/foo.log (assumendo la home dell'utente come / u / joe)
File.separarator
invece di occuparsi dell'attuale sistema operativo. Ad esempio, "/tmp/foo"
èFile.separator+"tmp"+File.separator+"foo"
Se possibile, suggerirei di creare Path
direttamente dagli elementi del percorso:
Path path = Paths.get("C:", "dir1", "dir2", "dir3");
// if needed
String textPath = path.toString(); // "C:\\dir1\\dir2\\dir3"
Anche quando la domanda riguarda Java 7, penso che aggiunga valore sapere che da Java 11 in poi esiste un metodo statico in Path
classe che consente di farlo immediatamente:
Con tutto il percorso in una stringa:
Path.of("/tmp/foo");
Con il percorso suddiviso in più stringhe:
Path.of("/tmp","foo");
Paths.get
.