Java memindai semua file di bawah folder yang ditentukan untuk referensi Anda. Konten spesifiknya adalah sebagai berikut
Pindai semua file di bawah folder, karena tidak ada batasan jumlah lapisan di folder, yang mungkin sebanyak lusinan atau ratusan lapisan. Biasanya, ada dua cara untuk melintasi semua file di bawah folder yang ditentukan.
Di bawah ini saya akan memberikan dua kode implementasi, termasuk implementasi rekursif dan non-rekursif, kode ini ditunjukkan di bawah ini.
Kode Java:
paket q.test.filescanner; impor java.io.file; impor java.util.arraylist; impor java.util.linkedlist; impor q.test.filescanner.exception.scanfilesexception; / *** @Author Evil Mr.*/ FolderFileScanner kelas publik {Private Static ArrayList <POMPERTIF> SCANFILES = NEW ARRAYLIST <POMPERTIF> (); / ** Implementasi LinkedList **/ Private Static LinkedList <FILE> queuefiles = new LinkedList <FILE> (); /** * TODO: Recursively scan the specified file under the specified folder* @return ArrayList<Object> * @author Mr. Evil (LQ) * @time November 3, 2017*/ public static ArrayList<Object> scanFilesWithRecursion(String folderPath) throws ScanFilesException{ ArrayList<String> directories = new ArrayList<String>(); Direktori File = File Baru (FolderPath); if (! Directory.isDirectory ()) {lempar scanfilesException baru ('"' + folderPath + '"' + "Jalur input bukanlah direktori, harap masukkan jalur yang benar dari direktori.^_^...^_^"); } if (directory.isdirectory ()) {file [] fileList = directory.listFiles (); untuk (int i = 0; i <fileList.length; i ++) { / ** Jika saat ini merupakan folder, masukkan folder pemindaian rekursif ** / if (FileList [i] .isdirectory ()) {directory.add (FileList [i] .getAbsolutePath ()); / ** memindai secara rekursif folder di bawah ini **/ scanfilewithrecursion (FileList [i] .getAbsolutePath ()); } / ** non-folder ** / else {scanfiles.add (FileList [i] .getAbsolutePath ()); }}} return scanfiles; } / **** TODO: Pindai semua file di bawah folder yang ditentukan dengan cara non-rekursif* @return ArrayList <Peject>* @param folderpath jalur folder yang perlu dipindai* @Author Mr. Evil (LQ)* @Time 3 November 2017* / Public Static Arraylist <Object> scanfiles WIRTLN dengan STRYFILEN NOVEMUSION 2017* / PUBLIC STATIC ARRAYLIST <Object> scaneRn AIR DISTRITN DISTRITN DISTRITN DISTRITN DISTRITN DISTRITION (OBYPATHTN PUBLIKN DISTRITION <TICTNIONS DISTRITION <NOVENTION 2017 ScanFilesException {file direktori = file baru (folderPath); if (! Directory.isDirectory ()) {lempar scanfilesException baru ('"' + folderPath + '"' + "Jalur input bukanlah direktori, harap masukkan jalur yang benar dari direktori.^_^...^_^"); } else {// pindai pertama file direktori layer pertama [] file = directory.listfiles (); // Transulasi array file yang dipindai. Jika itu adalah folder, masukkan ke LinkedList dan prosesnya nanti untuk (int i = 0; i <file.length; i ++) {if (file [i] .isdirectory ()) {queuefiles.add (file [i]); } else {// Untuk sementara masukkan nama file ke dalam scanfiles scanfiles.add (file [i] .getAbsolutePath ()); }} // Jika LinkedList tidak dikeluarkan LinkedList while (! Queuefiles.isempty ()) {// Pindahkan file pertama di linkedlist headdirectory = queuefiles.removefirst (); File [] currentFiles = headdirectory.listFiles (); untuk (int j = 0; j <surrentFiles.length; j ++) {if (currentFiles [j] .isdirectory ()) {// Jika masih folder, masukkan ke linkedlist queuefiles.add (currentFiles [j]); } else {scanfiles.add (currentFiles [j] .getAbsolutePath ()); }}} return scanfiles; }}}}} return scanfiles; }}}}}Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.