2012-01-19 4 views
7

Tengo el siguiente problema cuando se trata de obtener la ruta de un recurso dado:Cómo evitar obtener rutas URL codificadas de URL.getFile()?

System.out.println("nf="+new File(".").getAbsolutePath());  
    System.out.println("od="+new File(this.getClass().getResource(".").getFile()); 

La salida que recibo es:

nf=C:\Users\current user\workspace\xyz\. 
od=C:\Users\current%20user\workspace\xyz\bin\something 

El problema radica en el 20% codificación URL cosa . ¿Cómo evitarlo? ¿Hay una manera directa de evitar obtener este tipo de cadena en primer lugar, o debería simplemente ejecutar la cadena devuelta contra algún método que haga la decodificación de URL?

Gracias

+0

¿Qué es exactamente estás tratando de lograr? – axtavt

Respuesta

12

Esto se debe a un error de manejo de URL en la API. Puede solucionar esto mediante convertir la cadena de URL a un primer URI:

new URI(this.getClass().getResource(".").toString()).getPath() 

Esto producirá una cadena de la siguiente manera:

"C:\Users\current user\workspace\xyz\bin\something" 
+0

uri.getPath() devuelto nulo para mí. uri.getSchemeSpecificPart() hizo el truco. –

+0

this.getClass(). GetResource ("."). ToURI(). GetPath() hace el trabajo –

Cuestiones relacionadas