"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > دراسة الحالة: العثور على حجم الدليل

دراسة الحالة: العثور على حجم الدليل

تم النشر بتاريخ 2024-08-09
تصفح:826

تعتبر الطرق العودية فعالة في حل المشكلات ذات الهياكل العودية. يمكن حل الأمثلة السابقة بسهولة دون استخدام التكرار. يعرض هذا القسم مشكلة يصعب حلها دون استخدام التكرار. المشكلة هي العثور على حجم الدليل. حجم الدليل هو مجموع أحجام جميع الملفات الموجودة في الدليل. قد يحتوي الدليل d على أدلة فرعية. لنفترض أن الدليل يحتوي على ملفات f1 وf2 و... وfm وأدلة فرعية d1 وd2 و... وdn، كما هو موضح في الشكل أدناه.

Image description

يمكن تحديد حجم الدليل بشكل متكرر كما يلي:

الحجم (د) = الحجم (f1) الحجم (f2) ... الحجم (fm) الحجم (d1) الحجم (d2) ... الحجم (dn)

يمكن استخدام فئة ملف لتمثيل ملف أو دليل والحصول على خصائص الملفات والأدلة. هناك طريقتان في فئة ملف مفيدة لهذه المشكلة:

  • يُرجع الأسلوب length() حجم الملف.
  • يُرجع الأسلوب listFiles() مصفوفة من كائنات الملف ضمن الدليل.
الكود أدناه يعطي برنامجا يطلب من المستخدم إدخال دليل أو ملف ويعرض حجمه.

Image description

إذا كان كائن

الملف يمثل دليلاً (السطر 20)، فسيتم استدعاء كل عنصر فرعي (ملف أو دليل فرعي) في الدليل بشكل متكرر للحصول على حجمه (السطر 23). إذا كان كائن file يمثل ملفًا (السطر 26)، فسيتم الحصول على حجم الملف وإضافته إلى الحجم الإجمالي (السطر 27).

ماذا يحدث إذا تم إدخال دليل غير صحيح أو غير موجود؟ سيكتشف البرنامج أنه ليس دليلاً وسيستدعي

file.length() (السطر 27)، الذي يُرجع 0. وبالتالي، في هذه الحالة، سيعيد الأسلوب getSize 0.

لتجنب الأخطاء، من الممارسات الجيدة اختبار جميع الحالات. على سبيل المثال، يجب عليك اختبار البرنامج لإدخال ملف، ودليل فارغ، ودليل غير موجود، وملف غير موجود.

بيان الافراج تم إعادة نشر هذه المقالة على: https://dev.to/paulike/case-study-finding-the-directory-size-2946?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3