Java digitaliza todos os arquivos na pasta especificada para sua referência. O conteúdo específico é o seguinte
Digitalize todos os arquivos em uma pasta, porque não há limite para o número de camadas na pasta, que pode ser até dezenas ou centenas de camadas. Geralmente, existem duas maneiras de atravessar todos os arquivos na pasta especificada.
Abaixo, darei dois códigos de implementação, incluindo implementações recursivas e não recursivas, o código é mostrado abaixo.
Código Java:
pacote q.test.FileScanner; importar java.io.file; importar java.util.arraylist; importar java.util.LinkedList; importar q.test.filescanner.Exception.ScanFileSexception; / *** @Author Evil Mr.*/ Public Class FolderFileScanner {Private Static ArrayList <ject> scanfiles = new ArrayList <ject> (); / ** Implementação do LinkedList **/ Private Static LinkedList <File> QueueFiles = new LinkedList <File> (); / *** TODDO: Digitalize recursivamente o arquivo especificado na pasta especificada* @return ArrayList <ject>* @Author Mr. Evil (LQ)* @Time 3 de novembro de 2017*/ public static ArrayList <justList> scanfileswilistsWithRecursion (pasta String) lança SCANEXCECCEMCCONTECCEMCCONTELISTS <StringRayList <StringRection) Diretório de arquivos = novo arquivo (FolderPath); if (! Directory.isDirectory ()) {lança o novo caminho de entrada ScanFileSexception ('"' + FolderPath + '"' + "não é um diretório, insira o caminho certo do diretório.^_^...^_^"); } if (diretório.isdirectory ()) {file [] filelist = diretório.listfiles (); para (int i = 0; i <fileList.length; i ++) { / ** se atualmente for uma pasta, digite a pasta de varredura recursiva ** / if (fileList [i] .isDirectory ()) {diretories.add (filelist [i] .getabsolutePath ()); / ** Digitalize recursivamente a pasta abaixo **/ scanfilesWithRecursion (fileList [i] .getabsolutepath ()); } / ** Não-Folder ** / else {scanfiles.add (fileList [i] .getabsolutepath ()); }}} retornar scanfiles; } / **** TODO: Digitalize todos os arquivos abaixo da pasta especificada de uma maneira não recursiva* @return ArrayList <ject>* @param pasta o caminho da pasta que precisa ser digitalizada* @author sr. scanilesnhithn* @time 3, 2017* / public static ArrayList <object scaniles diretório = novo arquivo (FolderPath); if (! Directory.isDirectory ()) {lança o novo caminho de entrada ScanFileSexception ('"' + FolderPath + '"' + "não é um diretório, insira o caminho certo do diretório.^_^...^_^"); } else {// primeiro verifique o primeiro arquivo de diretório de camadas [] arquivos = diretório.listfiles (); // Transular a matriz de arquivo digitalizada. Se for uma pasta, coloque -a no LinkedList e processe -a posteriormente para (int i = 0; i <files.length; i ++) {if (arquivos [i] .isDirectory ()) {Queuefiles.add (arquivos [i]); } else {// Coloque temporariamente o nome do arquivo em scanfiles scanfiles.add (arquivos [i] .getabsolutepath ()); }} // Se o LinkedList for LinkedList não vazio não vazio while (! Arquivo [] currentFiles = headdirectory.listfiles (); para (int j = 0; j <currentFiles.Length; j ++) {if (currentfiles [j] .isDirectory ()) {// Se ainda for uma pasta, coloque -o na linkList QueueFiles.add (currentFiles [j]); } else {scanfiles.add (currentfiles [j] .getabsolutepath ()); }}} retornar scanfiles; }}}}} retorna scanfiles; }}}}}O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.