2013-08-26 20 views
5

Ho bisogno di tenere in memoria tutti i percorsi assoluti dei nomi di file in una determinata directory.ottenere tutti i percorsi assoluti dei file in una determinata cartella

myDirectory.list() - recupera String [] solo dei nomi di file (senza i relativi percorsi assoluti).

Non si desidera utilizzare Oggetto file poiché consuma più memoria.

Ultima cosa: posso usare le raccolte di apache ecc. (Ma non ho trovato nulla di utile per questo).

risposta

0

Il myDirectory non contiene la directory di tutti quei file? In tal caso, è sufficiente combinare il percorso in myDirectory con ciascuna delle celle nei ritorni dell'array myDirectory.list().

+0

Grazie. vuoi dire - fai un'altra iterazione su MyDirectory.list() e combinala con una nuova String []? c'è qualcosa di più ordinato fuori dalla scatola? – user1025852

+0

Che tipo è myDirectory? –

+0

Oggetto file ..... – user1025852

8
String directory = <your_directory>; 
File[] files = new File(directory).listFiles(); 
for(File file : files){ 
    if(file.isFile()){ 
    System.out.println(file.getAbsolutePath()); 
    } 
} 

Questo funziona, e devo dire che sono confusi quando dici di fare oggetti utilizzo di file non voglio, ma quello che funziona, immagino.

+0

Grazie, grazie. L'uso di File oggetto è molto più costoso della memoria, ma semplicemente mantiene la stringa di percorso. Caso Gestirò la cartella con file da 100K Ho paura di memoria insufficiente. Quindi, sto cercando una soluzione chiara per ottenere String [] di tutti i percorsi di file assoluti all'interno di una cartella – user1025852

+0

Se già conosci il percorso di root e relativi percorsi dei tuoi file e non sei disposto a eseguire un'altra iterazione per concatenare quelle stringhe, e non sei nemmeno disposto ad usare gli oggetti File per paura di esaurire la memoria, dovresti probabilmente distruggere l'array in array più piccoli e elaborarli separatamente seguendo i passaggi forniti. – victorantunes

+0

grazie, lo apprezzo – user1025852