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!!!
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:
Filelist[] = File.listRoots();ArrayListarquivos=newArrayList(), aux = new ArrayList();for(int i = 0; i < list.length; i++) aux.add(list[i]);ints;do{s=aux.size();list=newFile[s];for(int i = 0; i < s; i++){list[i] = (File)aux.get(i);}aux=newArrayList();//talvezsejabomchamarSystem.gc() aki...for(int i = 0; i < list.length; i++){if(list[i].isDirectory()) aux.add(list[i]);elsearquivos.add(list[i]);}}while (aux.size() > 0);
nem testei… mas deve funcionar…
_
_PARQUE_MACABRO_PJ
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…