1. Existem duas maneiras de atravessar todos os arquivos em uma pasta em Java:
1. Traversal recursivo é geralmente o primeiro método que os desenvolvedores podem pensar. As vantagens da travessia recursiva são: é relativamente simples de implementar, a quantidade de código é relativamente pequena e a eficiência da execução é alta. A desvantagem é: consome mais memória e requer alto hardware.
// atravessar recursivamente o Void GetDirectory (arquivo de arquivo) {FILE FLIST [] = FILE.LISTFILES (); if (flist == null || flist.length == 0) {return 0; } para (arquivo f: flist) {if (f.isDirectory ()) {// Todas getDirectory (f); } else {// Todos os arquivos serão listados aqui System.out.println ("file ==>" + f.getabsolutepath ()); }}}2. Traversal não recursivo. A travessia recursiva é fácil de entender, mas provavelmente não é fácil pensar nisso. Pensei por um longo tempo e descobri que Java tem uma coisa do Linkedlist. Eu literalmente sei que isso é usado para salvar uma lista de arquivos vinculados. Se for uma pasta, será fácil de fazer. A idéia específica é: ao percorrer uma pasta, se for uma pasta, ela será adicionada ao LinkedList e, se for um arquivo, será listada; Dessa forma, os arquivos e pastas no diretório são percorridos e todas as pastas são salvas para L na lista de tintas; Então, o que resta é atravessar os arquivos na lista do LinkedList. O método de travessia é o mesmo que a operação acima. Se for uma pasta, é adicionada à lista do LinkedList (PS: a lista do Linked durante o processo Traversal é sempre a mesma lista). Obviamente, depois que cada pasta é retirada da lista, a pasta precisa ser excluída da lista. Aqui está um linkedlist.removefirst () para ler, para que o primeiro elemento da lista seja lido e removido da lista. Dessa forma, desde que você atravesse o estado da LinkedList Isemty, isso significa que a travessia foi concluída.
// Não Recursivo Traversal Private Void GetDirectorySize (arquivo de arquivo) {LinkedList List = new LinkedList (); // Salvar a lista de pastas a ser perseguida o FOTONDIR (FILE, LIST); // Ligue para o método para atravessar o arquivo de diretório raiz tmp; while (! list.isempty ()) {tmp = (file) list.removefirst (); // O julgamento neste local é um pouco redundante, mas, por causa do seguro, ainda é um julgamento. Normalmente, existem apenas pastas na lista //, mas casos especiais não são descartados, por exemplo: o alvo que é uma pasta se torna um arquivo depois de ser empurrado para a pilha se (tmp.isdirectory ()) {gotonedirSize (tmp, list);} else {System.out.println ("arquivo ==>" " + tmp.getabsolutepath ());}}}} // atravessa o arquivo no diretório raiz da pasta especificada private void gotonedir (arquivo de arquivo, linkList list) {// esse método será chamado para cada pasta Traversal System.out.println ("Dir ==>" + fet. file.listfiles (); sumdir += 1; if (arquivos == null || files.length == 0) {return;} para (arquivos f: arquivos) {if (f.isdirectory ()) {list.add (f);} else {// this Lists todos os arquivos no root Directory do system.ad.out.out.PROUR.PROUNS.PREST.PRESS.PROUNS.PRESSPRESST (F); f.getabsolutepath ());}}}2. Use Java para atravessar uma pasta e obter todo o conteúdo
pacote Demo0823; importar java.io.file; importar java.util.ArrayList; public class filetest {private static ArrayList <String> filElist = new ArrayList <) ();); static void main; filepath) {file root = new arquivo (filepath); arquivo [] arquivos = root.listfiles (); para (arquivo de arquivo: arquivos) {if (file.isdirectory ()) {// se o arquivo for um diretório, ligue recursivamente no gabinete do piso // ligue recursivamente getfiles (file.getabsolutepath ()); filelist.add (file.getabsolutepath ()); system.out.println ("Mostrar todos os subdiretos e seus arquivos em"+filepath+""+file.getAbsolutePath);} mais {// se não for um diretório, " subfiles em "+filepath+" "+file.getabsolutepath ());}}}}Imagem de reprodução:
Resumir
O exposto acima é o código completo deste artigo sobre o TraverSing Arquivos na pasta Java Background. Espero que seja útil para todos. Amigos interessados podem continuar se referindo a outros tópicos relacionados neste site. Se houver alguma falha, deixe uma mensagem para apontá -la. Obrigado amigos pelo seu apoio para este site!