Java อ่านเส้นทางของโฟลเดอร์และไฟล์ทั้งหมดด้านล่าง เนื้อหาเฉพาะมีดังนี้
หากอยู่ในโฟลเดอร์ F:/AA มีโฟลเดอร์และไฟล์ดังที่แสดงด้านล่าง:
จากนั้นใน Java เส้นทางไฟล์ทั้งหมดภายใต้ f:/aa จะถูกอ่านด้วยวิธีนี้:
1. ก่อนอื่นเนื่องจาก arrayList ถูกใช้ภายใต้คลาสไฟล์และคอนเทนเนอร์ควรมีการแนะนำแพ็คเกจต่อไปนี้ในตอนต้น:
นำเข้า Java.io.*; นำเข้า Java.util.*;
2. วิธีการดังต่อไปนี้โดยที่ไฟล์ dirfile สามารถยอมรับเส้นทางทางกฎหมายทั้งหมดยกเว้นจดหมายไดรฟ์เช่น F: เนื่องจากตัวอักษรไดรฟ์มีไฟล์ระบบบางไฟล์การเข้าถึงจึงถูกปฏิเสธเนื่องจากตัวอักษรไดรฟ์ถูกอ่านอาจมีข้อยกเว้นตัวชี้โมฆะ
// ที่นี่เราเพียงสอบถามโฟลเดอร์และไฟล์ทั้งหมดในพา ธ ปัจจุบันและจัดเก็บพา ธ ของพวกเขาไปยังอาร์เรย์ไฟล์ // เนื่องจากเราพบโฟลเดอร์ที่ไม่ได้สอบถามมันมีโฟลเดอร์ย่อยและไฟล์ทั้งหมดไม่จำเป็นต้องใช้ arraylist <String> dir (ไฟล์ dirfile) if (dirfile.exists ()) {// เปิดใช้โฟลเดอร์และไฟล์ทั้งหมดในเส้นทางปัจจุบันโดยใช้ listfiles () เพื่อจัดเก็บโฟลเดอร์และไฟล์ทั้งหมดในพา ธ ปัจจุบันลงในไฟล์ไฟล์อาร์เรย์ไฟล์ [] = dirfile.listfiles (); สำหรับ (ไฟล์ไฟล์: ไฟล์) {// ถ้าพารามิเตอร์ที่ส่งผ่าน dirfile สิ้นสุดลงด้วยตัวคั่นไฟล์นั่นคือ /หรือ / /จากนั้นสร้างมันเช่นนี้ถ้า (dirfile.getPath (). endswith } else {// มิฉะนั้นหากไม่มีตัวคั่นไฟล์ให้เพิ่มตัวคั่นไฟล์และเพิ่มชื่อไฟล์ลงใน Path dirstrarr.add (dirfile.getPath () + file.Separator + file.getName ()); }} ส่งคืน dirstrarr; - วิธีการที่จะไม่อ่าน XLSX ในโฟลเดอร์ที่สร้างขึ้นใหม่ภายใต้ F:/AA หากในระหว่างกระบวนการอ่านเมื่อโฟลเดอร์ต้องการอ่านโฟลเดอร์ย่อยและไฟล์ทั้งหมดการเรียกซ้ำจะถูกใช้และตั้งค่าอาร์เรย์แบบไดนามิกทั่วโลกก่อน:
arraylist สาธารณะคงที่ <String> dirallStrarr = new ArrayList <String> ();
จากนั้นวิธีการดังนี้:
โมฆะคงที่สาธารณะ dirall (ไฟล์ dirfile) โยนข้อยกเว้น {ถ้า (dirfile.exists ()) {ไฟล์ไฟล์ [] = dirfile.listfiles (); สำหรับ (ไฟล์ไฟล์: ไฟล์) {// หากพบโฟลเดอร์จะเรียกว่าซ้ำ if (file.isdirectory ()) {// เรียก dirall (ไฟล์) ซ้ำอีกครั้ง; } else {// ถ้าคุณพบโฟลเดอร์ให้ใส่ไว้ในอาร์เรย์ถ้า (dirfile.getPath (). endswith (file.separator)) {dirallstrarr.add (dirfile.getPath () + file.getName ()); } else {dirallstrarr.add (dirfile.getPath () + file.Separator + file.getName ()); - ในความเป็นจริงในระหว่างกระบวนการอ่านคีย์คือการใช้เมธอด listfiles () เพื่อรับรายการไฟล์ทั้งหมดในโฟลเดอร์นี้ จากนั้นเช่น "[java] ย้ายโฟลเดอร์และ subfiles และ subfolders ทั้งหมด" (คลิกเพื่อเปิดลิงค์) และ "[java] ใช้สตรีมอินพุตและส่งออกไฟล์เพื่อดำเนินการคัดลอกไฟล์ทั้งหมดในโฟลเดอร์หนึ่งไปยังโฟลเดอร์อื่น" (คลิกเพื่อเปิดลิงค์)
วิธีทั้งหมดด้านบนเป็นไฟล์ Java เช่นนี้:
นำเข้า Java.io.*; นำเข้า Java.util.*; FileList คลาสสาธารณะ {// ตั้งค่าอาร์เรย์แบบไดนามิกทั่วโลกเพื่อจัดเก็บเส้นทางไฟล์ // เมื่อใช้โฟลเดอร์ที่ผ่านการสำรวจและมีโฟลเดอร์ย่อยและไฟล์ทั้งหมดการเรียกซ้ำจะถูกใช้ดังนั้นคุณควรตั้งค่า ArrayList แบบคงที่ <String> dirAllStrar // นี่คือการสืบค้นโฟลเดอร์และไฟล์ทั้งหมดภายใต้เส้นทางปัจจุบันและจัดเก็บพา ธ ของพวกเขาไปยังอาร์เรย์ไฟล์ // เนื่องจากโฟลเดอร์ไม่สอบถามมันมีโฟลเดอร์ย่อยและไฟล์ทั้งหมดไม่จำเป็นต้องใช้ arraylist แบบคงที่สาธารณะ if (dirfile.exists ()) {// นำโฟลเดอร์และไฟล์ทั้งหมดออกไปโดยตรงในเส้นทางปัจจุบันโดยใช้ ListFiles () เพื่อจัดเก็บโฟลเดอร์และไฟล์ทั้งหมดในไฟล์ไฟล์อาร์เรย์ไฟล์ [] = dirfile.listfiles (); สำหรับ (ไฟล์ไฟล์: ไฟล์) {// ถ้าพารามิเตอร์ที่ส่งผ่าน dirfile สิ้นสุดลงด้วยตัวคั่นไฟล์นั่นคือ / หรือ / / จากนั้นสร้างมันเช่นนี้ถ้า (dirfile.getPath (). endswith } else {// มิฉะนั้นหากไม่มีตัวคั่นไฟล์ให้เพิ่มตัวคั่นไฟล์และเพิ่มชื่อไฟล์ลงใน Path dirstrarr.add (dirfile.getPath () + file.Separator + file.getName ()); }}} ส่งคืน dirstrarr; } โมฆะคงที่สาธารณะ dirall (ไฟล์ dirfile) โยนข้อยกเว้น {ถ้า (dirfile.exists ()) {ไฟล์ไฟล์ [] = dirfile.listfiles (); สำหรับ (ไฟล์ไฟล์: ไฟล์) {// หากพบโฟลเดอร์จะเรียกว่าซ้ำ if (file.isdirectory ()) {// เรียก dirall (ไฟล์) ซ้ำอีกครั้ง; } else {// ถ้าพบโฟลเดอร์ใส่ไว้ในอาร์เรย์ถ้า (dirfile.getPath (). endswith (file.Separator)) {dirallstrarr.add (dirfile.getPath () + file.getName ()); } else {dirallstrarr.add (dirfile.getPath () + file.Separator + file.getName ()); }}}} โมฆะคงที่สาธารณะหลัก (สตริง [] args) พ่นข้อยกเว้น {ไฟล์ dirfile = ไฟล์ใหม่ ("f:/aa"); System.out.println (dir (dirfile)); dirall (dirfile); System.out.println (dirallstrarr); -ผลการดำเนินการมีดังนี้:
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น