2011-10-08 14 views
7

Hace un tiempo encontré un problema con getPath().getPath() y espacios en Java

mi código es como la siguiente:

File path = new File(Main.class.getResource("/worlds/").getPath()); 
File[] files = path.listFiles(); 

El problema ahora es que si hay un espacio en algún lugar de la ruta de acceso a la clase principal, path.listFiles() volverá null. Si no hay espacio, todo funciona bien.

si imprimir la ruta de acceso al cmd, veo que cada espacio se sustituye por un %20

Respuesta

3

No haga eso. Un resource URL devuelto por getResource() no es necesariamente un archivo en el sistema de archivos, que es lo que File representa.

+0

Tal vez, pero no puedo ver una manera mejor de leer el contenido de un directorio, relativo a la ruta donde se ejecuta el programa – Simiil

+0

'new File (" ./ worlds "). listFiles()' –

+0

Eso causa el mismo error descrito en el queston. – MasterCassim

13

que no es la forma correcta de convertir una URL a un archivo. intente esto en su lugar:

new File(Main.class.getResource("/worlds/").toURI()); 
+0

Tengo el mismo problema pero necesito una ruta de acceso a Velocity.getTemplate (.... – gstackoverflow

Cuestiones relacionadas