แนวคิดรหัส:
หากคุณต้องการวนซ้ำผ่านโฟลเดอร์ย่อยทั้งหมดในโฟลเดอร์คุณต้องใช้การเรียกซ้ำ
ก่อนอื่นตรวจสอบว่าเส้นทางมีอยู่:
ใช่: รับไฟล์
ตรวจสอบว่าเป็นโฟลเดอร์:
ใช่: โทรหาตัวเองและรับเนื้อหาในโฟลเดอร์ย่อยต่อไป
ไม่: กำหนดไฟล์ต่อท้ายหากตรงกับมันจะเป็นเอาต์พุต
ไม่: พรอมต์เอาต์พุต
แพ็คเกจ com.hanqi.maya.util; นำเข้า java.io.file; นำเข้า java.util.scanner; Public Class Testguolv {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {scanner sc = สแกนเนอร์ใหม่ (System.in); System.out.println ("โปรดป้อนเส้นทางเพื่อค้นหา"); สตริง s = sc.nextline (); ไฟล์ไฟล์ = ไฟล์ใหม่; filesum (ไฟล์, 1); } public static void filesum (ไฟล์ f, int len) {ถ้า (f.exists ()) {// ตัดสินว่าเส้นทางที่มีอยู่ในไฟล์ [] ไฟล์ = f.listfiles (); // รับชื่อไฟล์ภายใต้พา ธ สำหรับ (ไฟล์ fi: ไฟล์) {// ชื่อไฟล์เอาต์พุตวงจรถ้า (fi.isdirectory ()) {// ตัดสินว่าโฟลเดอร์ printblank (len); System.out.println (fi.getName ()+"โฟลเดอร์"); filesum (fi, len+1); // โทรหาตัวเองต่อไป} else {printblank (len); // พื้นที่เอาต์พุตถ้า (fi.getName (). endswith (". java")) {// ถ้าเป็นไฟล์ให้พิจารณาว่าเป็นคำต่อท้าย ".java" หรือไม่ หากเป็น "คำต่อท้าย" ดังนั้น output system.out.println (fi.getName ()); }}}}} else {system.out.println ("ไฟล์ไม่มีอยู่ !!!"); }} โมฆะคงที่สาธารณะ printblank (int len) {สำหรับ (int i = 0; i <len; i ++) {// output เพื่อแยกแยะลำดับชั้นของโฟลเดอร์ System.out.print ("."); -สรุปและคำถาม:
ฉันเรียนรู้เกี่ยวกับไฟล์ทั้งหมดในโฟลเดอร์เอาท์พุทเมื่อวานนี้ แต่วันนี้ฉันมีการเปลี่ยนแปลงเล็กน้อยเพื่อค้นหาไฟล์ที่มีคำต่อท้ายที่ระบุภายใต้โฟลเดอร์
เนื่องจากไม่มีลำดับชั้นเมื่อส่งออกฉันจึงเขียนลูปเพื่อเพิ่มช่องว่างด้านหน้าไฟล์เอาต์พุตเพื่อให้ระดับชัดเจน ต่อมาฉันพบว่าช่องว่างไม่ชัดเจนพอสำหรับตัวละครจีน เมื่อพบกับตัวละครจีนพวกเขาจะเยื้องช่องว่างหลายช่อง แต่มันจะไม่เป็นเช่นนี้เมื่อใช้สัญลักษณ์
นอกจากนี้ยังมีปัญหาในการควบคุมชื่อคำต่อท้ายที่ระบุและยังไม่ได้รับการแก้ไข
บทความข้างต้น Java ใช้ฟังก์ชันตัวกรองไฟล์อย่างง่ายคือเนื้อหาทั้งหมดที่ฉันได้แชร์กับคุณ ฉันหวังว่าคุณจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น