Java สแกนไฟล์ทั้งหมดภายใต้โฟลเดอร์ที่ระบุสำหรับการอ้างอิงของคุณ เนื้อหาเฉพาะมีดังนี้
สแกนไฟล์ทั้งหมดภายใต้โฟลเดอร์เนื่องจากไม่มีการ จำกัด จำนวนเลเยอร์ในโฟลเดอร์ซึ่งอาจมีมากถึงหลายสิบหรือหลายร้อยชั้น โดยปกติจะมีสองวิธีในการสำรวจไฟล์ทั้งหมดภายใต้โฟลเดอร์ที่ระบุ
ด้านล่างนี้ฉันจะให้รหัสการใช้งานสองรหัสรวมถึงการใช้งานแบบเรียกซ้ำและไม่ซ้ำได้รหัสจะแสดงด้านล่าง
รหัส Java:
แพ็คเกจ q.test.filescanner; นำเข้า Java.io.File; นำเข้า java.util.arraylist; นำเข้า java.util.linkedList; นำเข้า q.test.filescanner.exception.scanfilesexception; / *** @author Evil Mr.*/ Public Class FolderFilescanner {ArrayList แบบสแตติกส่วนตัว <Object> ScanFiles = arrayList ใหม่ <Ojrop> (); / ** การใช้งาน LinkedList **/ Private Static LinkedList <File> queueFiles = ใหม่ LinkedList <File> (); / *** TODO: สแกนไฟล์ที่ระบุซ้ำภายใต้โฟลเดอร์ที่ระบุ* @return ArrayList <Object>* @author Mr. Evil (LQ)* @time 3 พฤศจิกายน 2017*/ Public Static ArrayList <Ojrop> ScanFilesWithRecursion ไดเรกทอรีไฟล์ = ไฟล์ใหม่ (FolderPath); if (! directory.isdirectory ()) {โยน scanfilesexception ใหม่ ('' ' + folderpath +' '' + "เส้นทางอินพุตไม่ใช่ไดเรกทอรีโปรดป้อนเส้นทางที่ถูกต้องของไดเรกทอรี^_^...^_^"); } if (directory.isdirectory ()) {ไฟล์ [] fileList = directory.listfiles (); สำหรับ (int i = 0; i <fileList.length; i ++) { / ** หากเป็นโฟลเดอร์ในปัจจุบันให้ป้อนโฟลเดอร์สแกนแบบเรียกซ้ำ ** / ถ้า (fileList [i] .isdirectory ()) {directories.add (filelist [i] .getabsolutepath ()); / ** สแกนโฟลเดอร์ด้านล่าง **/ scanfileswithRecursion (fileList [i] .getAbsolutePath ()); } / ** non-folder ** / else {scanfiles.add (filelist [i] .getAbsolutepath ()); }}} ส่งคืน scanfiles; } / **** TODO: สแกนไฟล์ทั้งหมดด้านล่างโฟลเดอร์ที่ระบุในลักษณะที่ไม่ซ้ำ* @return ArrayList <Ojuct>* @Param FolderPath เส้นทางของโฟลเดอร์ที่ต้องสแกน* @author Mr. Evil (LQ)* @time 3 พฤศจิกายน 2017 ไดเรกทอรีไฟล์ = ไฟล์ใหม่ (FolderPath); if (! directory.isdirectory ()) {โยน scanfilesexception ใหม่ ('' ' + folderpath +' '' + "เส้นทางอินพุตไม่ใช่ไดเรกทอรีโปรดป้อนเส้นทางที่ถูกต้องของไดเรกทอรี^_^...^_^"); } else {// ครั้งแรกสแกนไฟล์ไดเรกทอรีเลเยอร์แรก [] ไฟล์ = directory.listfiles (); // ส่งสัญญาณอาร์เรย์ไฟล์ที่สแกน หากเป็นโฟลเดอร์ให้ใส่ลงใน LinkedList และประมวลผลในภายหลังสำหรับ (int i = 0; i <files.length; i ++) {ถ้า (ไฟล์ [i] .isdirectory ()) {queuefiles.add (ไฟล์ [i]); } else {// ใส่ชื่อไฟล์ลงใน scanfiles scanfiles.add ชั่วคราว (ไฟล์ [i] .getabsolutepath ()); }} // ถ้า linkedList เป็น linkedList ที่ไม่ได้รับการตรวจสอบในขณะที่ (! queueFiles.isEmpty ()) {// ย้ายไฟล์แรกใน LinkedList HeadDirectory = QueueFiles.RemoveFirst (); ไฟล์ [] currentFiles = headDirectory.listFiles (); สำหรับ (int j = 0; j <currentfiles.length; j ++) {ถ้า (currentfiles [j] .isdirectory ()) {// ถ้ามันยังคงเป็นโฟลเดอร์ให้ใส่ลงใน linkedList queueFiles.add (currentfiles [j]); } else {scanfiles.add (currentfiles [j] .getabsolutepath ()); }}} ส่งคืน scanfiles; }}}}} ส่งคืน scanfiles; -ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น