تقرأ Java مسارات جميع المجلدات والملفات أدناه. المحتوى المحدد كما يلي
إذا كان في مجلد F:/AA ، فهناك مجلدات وملفات كما هو موضح أدناه:
ثم ، في جافا ، تتم قراءة جميع مسارات الملفات تحت F:/AA بهذه الطريقة:
1. أولاً وقبل كل شيء ، نظرًا لاستخدام ArrayList ضمن فئات الملف والحاويات ، يجب تقديم الحزم التالية في البداية:
استيراد java.io.*؛ استيراد java.util.*؛
2. الطريقة هي كما يلي ، حيث يمكن للملف dirfile قبول جميع المسارات القانونية باستثناء خطاب محرك الأقراص ، مثل f:. نظرًا لأن خطاب محرك الأقراص يحتوي على بعض ملفات النظام ، يتم رفض الوصول ، لأنه يتم قراءة خطاب محرك الأقراص ، قد يحدث استثناء مؤشر فارغ.
// هنا ، لا نقوم فقط بالاستعلام عن جميع المجلدات والملفات في المسار الحالي وتخزين مساراتها إلى مجموعة الملفات // نظرًا لأننا نواجه مجلد لا يستفسر عن جميع المجلدات الفرعية والملفات ، فليس هناك حاجة لاستخدام قائمة ArrayList الثابتة العودية <Tring> dir (file dirfile) استثناء {arraylist <String> dirstrarr = جديد. if (dirfile.exists ()) {// قم بإخراج جميع المجلدات والملفات مباشرة في المسار الحالي باستخدام listfiles () لتخزين جميع المجلدات والملفات في المسار الحالي في ملفات ملفات ملفات [] = dirfile.listfiles () ؛ لـ (ملف الملف: الملفات) {// إذا تم إنهاء المعلمة التي تم تمريرها مع فاصل ملف ، أي ، /أو /، ثم بنائه مثل هذا إذا (dirfile.getPath (). } آخر {// خلاف ذلك ، إذا لم يكن هناك فاصل ملف ، أضف فاصل ملف وأضف اسم الملف إلى path dirstrrarr.add (dirfile.getPath () + file.separator + file.getName ()) ؛ }} إرجاع dirstrrrar ؛ } تتمثل الطريقة الموجودة عليه في عدم قراءة XLSX في المجلد الذي تم إنشاؤه حديثًا ضمن F:/AA. إذا كان أثناء عملية القراءة ، عندما يريد المجلد قراءة جميع المجلدات الفرعية والملفات ، يتم استخدام العودية ويتم تعيين صفيف ديناميكي عالمي أولاً:
ArrayList ثابت عام <string> dirallstrrar = جديد ArrayList <string> () ؛
ثم الطريقة كما يلي:
Public Static void dirall (file dirfile) يلقي الاستثناء {if (dirfile.exists ()) {file files [] = dirfile.listfiles () ؛ لـ (ملف الملف: الملفات) {// إذا تمت مواجهة مجلد ، فسيتم تسميته بشكل متكرر. if (file.isdirectory ()) {// call بشكل متكرر dirall (file) ؛ } آخر {// إذا واجهت مجلد ، ضعه في الصفيف if (dirfile.getPath (). endswith (file.separator)) {dirallstrrar.add (dirfile.getPath () + file.getName ()) ؛ } آخر {dirallstrrarr.add (dirfile.getPath () + file.separator + file.getName ()) ؛ }}}}}}}}}}}}}}}}}}}}}} في الواقع ، أثناء عملية القراءة ، يتمثل المفتاح في استخدام طريقة ListFiles () للحصول على قائمة جميع الملفات في هذا المجلد. بعد ذلك ، مثل "[java] نقل المجلدات وجميع المجلدات الفرعية والمجلدات الفرعية" (انقر لفتح الرابط) و "[Java] يستخدم تدفقات إدخال الملفات والإخراج لإكمال عملية نسخ جميع الملفات في مجلد واحد إلى مجلد آخر" (انقر لفتح الرابط) ، ثم تواجه مجلدات متكررة.
الطريقة بأكملها أعلاه هي ملف Java مثل هذا:
استيراد java.io.*؛ استيراد java.util.*؛ الفئة العامة FileList {// قم بتعيين صفيف ديناميكي عالمي لتخزين مسار الملف // عند عبور المجلدات وتحتوي على جميع المجلدات الفرعية والملفات ، يتم استخدام العودية ، لذلك يجب عليك تعيين ArrayList ثابت عام <String> dirallstrarr = جديد ArrayList <String> () ؛ // هنا هو الاستعلام عن جميع المجلدات والملفات تحت المسار الحالي وتخزين مساراتها إلى صفيف الملف // لأن المجلد لا يستفسر عن جميع المجلدات الفرعية والملفات ، فلا داعي لاستخدام Recursion static arraylist <Static <String> dir (file dirfile) استثناء {arraylist <string> dirstrarr = new raillist <string> () ؛ if (dirfile.exists ()) {// قم بإخراج جميع المجلدات والملفات مباشرة في المسار الحالي باستخدام listfiles () لتخزين جميع المجلدات والملفات في ملفات ملفات ملفات [] = dirfile.listfiles () ؛ لـ (ملف الملف: الملفات) {// إذا تم إنهاء المعلمة التي تم تمريرها مع فاصل ملف ، أي ، / أو / ، ثم بنائه مثل هذا إذا (dirfile.getPath (). } آخر {// خلاف ذلك ، إذا لم يكن هناك فاصل ملف ، أضف فاصل ملف وأضف اسم الملف إلى path dirstrrarr.add (dirfile.getPath () + file.separator + file.getName ()) ؛ }}} return dirstrrar ؛ } public static void dirall (file dirfile) يلقي الاستثناء {if (dirfile.exists ()) {file file [] = dirfile.listfiles () ؛ لـ (ملف الملف: الملفات) {// إذا تمت مواجهة مجلد ، فسيتم تسميته بشكل متكرر. if (file.isdirectory ()) {// call بشكل متكرر dirall (file) ؛ } آخر {// إذا تمت مواجهة مجلد ، فضعه في صفيف إذا (dirfile.getPath (). endswith (file.separator)) {dirallstrrar.add (dirfile.getPath () + file.getName ()) ؛ } آخر {dirallstrrarr.add (dirfile.getPath () + file.separator + file.getName ()) ؛ }}}} public static void main (string [] args) يلقي استثناء {file dirfile = new file ("f:/aa") ؛ system.out.println (dir (dirfile)) ؛ Dirall (dirfile) ؛ system.out.println (dirallstrrar) ؛ }}نتائج التشغيل كما يلي:
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.