Obtenga el objeto java.nio.file.Path de java.io.File

2 minutos de lectura

avatar de usuario
Karlovsky120

¿Es posible obtener un objeto Path de un java.io.File?

Sé que puedes convertir una ruta a un archivo usando toFile() método, pero no pude encontrar la conversión opuesta. ¿Hay alguna manera de hacer esto en Java 6 o inferior?

  • ¿Has mirado la documentación de la API?

    – Vivin Paliat

    19 de marzo de 2013 a las 23:05


  • Sí, vi los métodos resolve y resolveSibling, pero eso no se convirtió exactamente de archivo (o cadena) a ruta, sino que lo concatenó de alguna manera.

    – Karlovsky120

    19 de marzo de 2013 a las 23:07

  • Aquí está el documentación @VivinPaliath también está aludiendo.

    – Percepción

    19 de marzo de 2013 a las 23:07

  • Me sorprende cómo la pregunta más estúpida posible (quiero decir, vamos, estaba en la documentación, la búsqueda corta de Google la habría respondido) me está dando la mayor cantidad de puntos en el sitio. 😀

    – Karlovsky120

    28 de marzo de 2017 a las 23:10

  • @ Karlovsky120 no debería sorprenderte si intentas buscarlo en Google tú mismo;)

    – 9ilsdx 9rvj 0lo

    30 de noviembre de 2017 a las 12:46

avatar de usuario
vivin paliath

Sí, puedes conseguirlo en el File objeto usando File.toPath(). Tenga en cuenta que esto es solo para Java 7+. Las versiones de Java 6 e inferiores no lo tienen.

  • ¿Hay alguna manera de lograr esto en Java 6 o inferior?

    – Karlovsky120

    19 de marzo de 2013 a las 23:43

  • Path se introdujo en Java 7, por lo que lamentablemente no hay forma de hacer esto en Java 6 y versiones anteriores.

    – Vivin Paliat

    20 de marzo de 2013 a las 0:44

De la documentación:

Rutas asociadas con el valor predeterminado provider son generalmente interoperables con el java.io.File clase. Es poco probable que las rutas creadas por otros proveedores sean interoperables con los nombres de ruta abstractos representados por java.io.File. los toPath 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 el
java.io.File objeto. además, el toFile El método es útil para construir un File desde el String representación de un Path.

(énfasis mío)

Entonces, para toFile:

Devuelve un File objeto que representa este camino.

Y toPath:

Devuelve un java.nio.file.Path objeto construido a partir de este camino abstracto.

Es probable que quieras File.toPath().

Como muchos han sugerido, JRE v1.7 y superior tiene File.toPath();

File yourFile = ...;
Path yourPath = yourFile.toPath();

en Oracle documentación 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());

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad