2011-10-08 9 views
7

Ho riscontrato un problema con getPath() di recente.getPath() e Spaces in Java

mio codice simile a questa:

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

Il problema ora è che se c'è uno spazio da qualche parte nel percorso per la classe principale, path.listFiles() sarà ritorno null. Se non c'è spazio, tutto funziona bene.

se stampo il percorso del cmd, vedo che ogni spazio è sostituito da un %20

risposta

3

Non farlo. Un resource URL restituito da getResource() non è necessariamente un file sul file system, che rappresenta ciò che rappresenta File.

+0

Forse, ma non vedo un modo migliore di leggere il contenuto di una directory, relativo al percorso in cui viene eseguito il programma – Simiil

+0

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

+0

Che causa lo stesso errore descritto nella ricerca – MasterCassim

13

che non è il modo corretto per convertire un URL di un file. prova questo:

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

Ho lo stesso problema ma ho bisogno di un percorso di accesso a Velocity.getTemplate (.... – gstackoverflow