¿Es posible obtener un objeto Path de a java.io.File
?
Sé que puedes convertir una ruta a un archivo usando el toFile()
método, pero no pude encontrar la conversión opuesta. ¿Hay alguna manera de hacer esto en Java 6 o inferior?
¿Es posible obtener un objeto Path de a java.io.File
?
Sé que puedes convertir una ruta a un archivo usando el toFile()
método, pero no pude encontrar la conversión opuesta. ¿Hay alguna manera de hacer esto en Java 6 o inferior?
Respuestas:
Sí, puede obtenerlo del File
objeto mediante el uso File.toPath()
. Tenga en cuenta que esto es solo para Java 7+. Las versiones de Java 6 y posteriores no lo tienen.
Path
se introdujo en Java 7, por lo que desafortunadamente no hay forma de hacerlo en Java 6 y versiones posteriores.
De la documentación :
Las rutas asociadas con el valor predeterminado
provider
generalmente son interoperables con lajava.io.File
clase. Es poco probable que las rutas creadas por otros proveedores sean interoperables con los nombres de ruta abstractos representados porjava.io.File
. EltoPath
método se puede utilizar para obtener una ruta a partir del nombre de ruta abstracto representado por un objeto java.io.File. La ruta resultante se puede utilizar para operar en el mismo archivo que eljava.io.File
objeto. Además, eltoFile
método es útil para construir aFile
desde laString
representación de aPath
.
(énfasis mío)
Entonces, para toFile
:
Devuelve un
File
objeto que representa esta ruta.
Y toPath
:
Devuelve un
java.nio.file.Path
objeto construido a partir de esta ruta abstracta.
Probablemente quieras File.toPath()
.
Como muchos han sugerido, JRE v1.7 y superior tiene File.toPath ();
File yourFile = ...;
Path yourPath = yourFile.toPath();
En la documentación de Oracle jdk 1.7 que también se menciona en otras publicaciones anteriores, el siguiente código equivalente se describe en la descripción del método toPath (), que puede funcionar para JRE v1.6;
File yourFile = ...;
Path yourPath = FileSystems.getDefault().getPath(yourFile.getPath());