Java scannt alle Dateien unter dem angegebenen Ordner für Ihre Referenz. Der spezifische Inhalt ist wie folgt
Scannen Sie alle Dateien unter einem Ordner, da die Anzahl der Ebenen im Ordner, die möglicherweise bis zu Dutzende oder Hunderten von Ebenen aussieht, keine Begrenzung enthält. Normalerweise gibt es zwei Möglichkeiten, alle Dateien unter dem angegebenen Ordner zu überqueren.
Im Folgenden werde ich zwei Implementierungscodes angeben, einschließlich rekursiver und nicht rekursiver Implementierungen, der Code ist unten angezeigt.
Java -Code:
Paket Q.test.filescanner; Import Java.io.file; Import Java.util.ArrayList; import Java.util.linkedList; import q.test.filescanner.exception.scanFileSexception; / *** @Author Evil Mr. / ** LinkedList -Implementierung **/ private static LinkedList <Datei> queueFiles = new LinkedList <Datei> (); / *** TODO: Scannen Sie die angegebene Datei unter dem angegebenen Ordner rekursiv. Dateiverzeichnis = neue Datei (OrdnerPath); if (! Directory.isdirectory ()) {neue scanFileSexception ('"' + OrdnerPath + '"' + "Eingabefad ist kein Verzeichnis, geben bitte den richtigen Pfad des Verzeichnisses ein.^_^...^_^"); } if (verzeichnis. für (int i = 0; i <filelist.length; i ++) { / ** Wenn es sich derzeit um einen Ordner handelt, geben Sie den rekursiven Scan -Ordner ein ** / if (filelist [i] .IsDirectory ()) {Verzeichnisse.add (Filelist [i] .getabsolutepath ()); / ** rekursiv den Ordner unten scannen **/ scanFileswitHecursion (Filelist [i] .getabsolutepath ()); } / ** Nicht-Folder ** / else {scanFiles.add (filelist [i] .getabsolutepath ()); }}} return scanfiles; } / **** TODO: Scannen Sie alle Dateien unter dem angegebenen Ordner auf nicht rezisive Weise* @return ArrayList <Object>* @param Ordnerpath Der Pfad des Ordners, der gescannt werden muss neue Datei (OrdnerPath); if (! Directory.isdirectory ()) {neue scanFileSexception ('"' + OrdnerPath + '"' + "Eingabefad ist kein Verzeichnis, geben bitte den richtigen Pfad des Verzeichnisses ein.^_^...^_^"); } else {// scannen Sie zuerst die erste Layer -Verzeichnisdatei [] Dateien = Verzeichnis.Listfiles (); // das gescannte Dateiarray übertragen. Wenn es sich um einen Ordner handelt, setzen Sie ihn in die LinkedList ein und verarbeiten Sie ihn später für (int i = 0; i <files.length; i ++) {if (Dateien [i] .isDirectory ()) {Queuefiles.add (Dateien [i]); } else {// geben den Dateinamen vorübergehend in scanFiles scanFiles.add (Dateien [i] .getabsolutepath ()); }} // Wenn die LinkedList nicht überrascht ist, wurde die LinkedList while (! QueueFiles.isempty ()) {// die erste Datei in LinkedList Headdirectory = Queuefiles.RemoveFirst () ausziehen; Datei [] currentFiles = headdirectory.listfiles (); für (int j = 0; j <currentFiles.length; j ++) {if (currentFiles [j] .isDirectory ()) {// Wenn es sich immer noch um einen Ordner handelt, geben Sie es in LinkedList QueueFiles.add (currentFiles [j]); } else {scanFiles.add (currentFiles [j] .getabsolutepath ()); }}} return scanfiles; }}}}} return scanFiles; }}}}}Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.