urlencoder example java file url escaping

example - Java: ¿cómo obtener un archivo de una URL escapada?



sanitize url java (3)

AFAIK como este Paths.get(url.toURI()).toFile() es lo mejor, comenzando con Java 7. Consulte también Convertir archivo Java: // URL a ruta de archivo (...), plataforma independiente, incluidas las rutas UNC .

Recibo una URL que localiza un archivo local (el hecho de que reciba una URL no está bajo mi control). La URL se escapó válidamente como se define en RFC2396. ¿Cómo puedo transformar esto en un objeto de archivo Java?

Curiosamente, el método URL getFile () devuelve una Cadena, no un Archivo.

Creé un directorio llamado "/ tmp / some dir" (con un carácter de separación entre "algunos" y "dir"), que se encuentra correctamente en la siguiente URL: "file: /// tmp / some% 20dir" (se agregaron citas para mayor claridad).

¿Cómo puedo convertir esa URL a un archivo Java?

Para dar más detalles sobre mi problema, lo siguiente imprime falso:

URL url = new URL( "file:///tmp/some%20dir" ); File f = new File( url.getFile() ); System.out.println( "Does dir exist? " + f.exists() );

Mientras que lo siguiente (reemplazando manualmente "% 20" con un espacio) se imprime verdadero:

URL url = new URL( "file:///tmp/some%20dir" ); File f = new File( url.getFile().replaceAll( "%20", " " ) ); System.out.println( "Does dir exist? " + f.exists() );

Tenga en cuenta que no estoy preguntando por qué el primer ejemplo imprime falso ni por qué el segundo ejemplo que usa my hacky replaceAll imprime verdadero, estoy preguntando cómo convertir una URL escapada en un objeto de archivo Java.

EDITAR : gracias a todos, esto fue casi una tontería, pero no exactamente.

Estúpidamente, estaba buscando un método de ayuda dentro de la clase de URL en sí.

Los siguientes trabajos funcionan como se espera para obtener un archivo Java desde una URL Java:

URL url = new URL( "file:///home/nonet/some%20dir" ); File f = new File( URLDecoder.decode( url.getFile(), "UTF-8" ) );