¿Cómo puedo crear un java.nio.file.Path
objeto a partir de un String
objeto en Java 7?
Es decir
String textPath = "c:/dir1/dir2/dir3";
Path path = ?;
¿Dónde ?
está el código que falta textPath
?
¿Cómo puedo crear un java.nio.file.Path
objeto a partir de un String
objeto en Java 7?
Es decir
String textPath = "c:/dir1/dir2/dir3";
Path path = ?;
¿Dónde ?
está el código que falta textPath
?
Respuestas:
Puedes usar la Paths
clase:
Path path = Paths.get(textPath);
... suponiendo que desea utilizar el sistema de archivos predeterminado, por supuesto.
Path.get()
plataforma independiente? lo que significa que Path.get("lib","p2")
será como lib\p2
en Windows y lib/p2
en Linux
De los javadocs .. http://docs.oracle.com/javase/tutorial/essential/io/pathOps.html
Path p1 = Paths.get("/tmp/foo");
es lo mismo que
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");
En Windows, crea el archivo C: \ joe \ logs \ foo.log (asumiendo el inicio del usuario como C: \ joe)
En Unix, crea el archivo /u/joe/logs/foo.log (asumiendo el inicio del usuario como / u / joe)
File.separarator
lugar de cuidar el sistema operativo actual. Eg "/tmp/foo"
isFile.separator+"tmp"+File.separator+"foo"
Si es posible, sugeriría crear Path
directamente desde los elementos de la ruta:
Path path = Paths.get("C:", "dir1", "dir2", "dir3");
// if needed
String textPath = path.toString(); // "C:\\dir1\\dir2\\dir3"
Incluso cuando la pregunta se refiere a Java 7, creo que agrega valor saber que desde Java 11 en adelante, hay un método estático en Path
clase que permite hacer esto de inmediato:
Con todo el camino en una cadena:
Path.of("/tmp/foo");
Con el camino desglosado en varias cadenas:
Path.of("/tmp","foo");
Paths.get
.