Gostaria que me ajudassem.
Estou querendo criar uma List que contenha todos os arquivos de um diretório, incluindo arquivos dos subdiretorios dentro deste. Estou usando o objeto File(“c:\”), so que o metodo list() lista apenas os arquivos de “c:”, nao os subdiretorios…
Eu consegui criar um metodo recursivo que chama a si mesmo quando encontra uma pasta dentro da outra, so que queima muita memoria, e dá um FerrouTudoException :twisted:
Se algem souber um modo de guardar todos os arquivos do disco “c:”, incluindo subpastas, sem utilizar recursividade, por favor me ajudem!!!
Valeu()
primeiro, uma dica, nao use new File(“C:”); pq soh vai rodar no ruwindows, use o metodo estatico da classe File listRoots(), que retorna um array de Files para as raises… no ruwindows retornaria nao soh o C: como todas as unidades, e no linux iria retornar o /
pra listar as subpastas, teste isso:
File list[] = File.listRoots();
ArrayList arquivos = new ArrayList(), aux = new ArrayList();
for (int i = 0; i < list.length; i++) aux.add(list[i]);
int s;
do{
s = aux.size();
list = new File[s];
for (int i = 0; i < s; i++){
list[i] = (File)aux.get(i);
}
aux = new ArrayList();
// talvez seja bom chamar System.gc() aki...
for (int i = 0; i < list.length; i++){
if (list[i].isDirectory()) aux.add(list[i]);
else arquivos.add(list[i]);
}
}while (aux.size() > 0);
nem testei… mas deve funcionar…
Oi,
Eu tambem nao testei este codigo, mas acho que so funciona para um único diretório… Nao funcionaria se tivesse um diretorio dentro de um diretorio e assim por diante.
Se alguem souber, me ajudem, ainda vou testar este código…
obrigadoPelaAjuda()