Java analyse tous les fichiers dans le dossier spécifié pour votre référence. Le contenu spécifique est le suivant
Scannez tous les fichiers dans un dossier, car il n'y a pas de limite sur le nombre de couches dans le dossier, qui peuvent atteindre des dizaines ou des centaines de couches. Habituellement, il existe deux façons de parcourir tous les fichiers dans le dossier spécifié.
Ci-dessous, je donnerai deux codes d'implémentation, y compris des implémentations récursives et non réécursives, le code est illustré ci-dessous.
Code Java:
package q.test.filescanner; Importer java.io.file; import java.util.arraylist; import java.util.linkedlist; import q.test.filescanner.exception.scanfilesexception; / ** * @Author Evil Mr. * / public class FolderFileScanner {private static arrayList <Bject> ScanFiles = new ArrayList <Bject> (); / ** LinkedList Implementation ** / private static LinkedList <Fichier> queueFiles = new LinkedList <File> (); / ** * TODO: scanner récursivement le fichier spécifié sous le dossier spécifié * @return ArrayList <Bject> * @Author Mr. Evil (LQ) * @time 3 novembre 2017 * / public static ArrayList <Bject> ScanFilesWithRecursion (String FolderPath) lance ScanFileException {ArrayList <String> Directories = New ArrayList <sthring> ();); File Directory = nouveau fichier (FolderPath); if (! Directory.isDirectory ()) {Throw New ScanFilesexception ('' '+ Folderpath +' "'+" Le chemin d'entrée n'est pas un répertoire, veuillez saisir le bon chemin du répertoire. ^ _ ^ ... ^ _ ^ "); } if (Directory.isDirectory ()) {file [] FileList = Directory.ListFiles (); pour (int i = 0; i <fileList.length; i ++) {/ ** Si c'est actuellement un dossier, entrez le dossier de numérisation récursif ** / if (FileList [i] .isdirectory ()) {Directories.add (FileList [i] .getAbsoLetepath ()); / ** Scannez récursivement le dossier ci-dessous ** / ScanFiles withRecursion (FileList [i] .getAbsolutepath ()); } / ** Non-Folder ** / else {ScanFiles.add (FileList [i] .getAbsolutepath ()); }}} return ScanFiles; } / ** * * TODO: Analyser tous les fichiers sous le dossier spécifié de manière non réécursive * @return ArrayList <Bject> * @param FolderPath le chemin du dossier qui doit être scanné * @author M. Evil (LQ) * @time 3 novembre 2017 * / public static ArrayList <Object> ScanfileswithNoreCursion (String DolderPathe) = nouveau fichier (FolderPath); if (! Directory.isDirectory ()) {Throw New ScanFilesexception ('' '+ Folderpath +' "'+" Le chemin d'entrée n'est pas un répertoire, veuillez saisir le bon chemin du répertoire. ^ _ ^ ... ^ _ ^ "); } else {// Analyse d'abord le premier fichier de répertoire de couche [] files = répertoire.listFiles (); // transsulez le tableau de fichiers numérisé. S'il s'agit d'un dossier, mettez-le dans LinkedList et traitez-le plus tard pour (int i = 0; i <files.length; i ++) {if (files [i] .isDirectory ()) {queueFiles.add (fichiers [i]); } else {// Mettez temporairement le nom de fichier dans ScanFiles ScanFiles.add (fichiers [i] .getAbsolutepath ()); }} // Si LinkedList est non empty traversé LinkedList while (! QueueFiles.isempty ()) {// Déplacez le premier fichier dans LinkedList HeadDirectory = queueFiles.RemoveFirst (); File [] currentFiles = headDirectory.ListFiles (); for (int j = 0; j <currentFiles.length; j ++) {if (currentFiles [j] .isDirectory ()) {// s'il s'agit toujours d'un dossier, mettez-le dans lienList fitreFiles.add (currentFiles [j]); } else {ScanFiles.add (currentfiles [j] .getAbsolutepath ()); }}} return ScanFiles; }}}}} return ScanFiles; }}}}}Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.