• 0

كيف أقوم بتكرار أمر على جميع الملفات في المجلد باستخدام الروبي؟

كيف أقوم بكتابة حلقة تكرار في الروبي لتنفيذ شيفرات برمجية معينة على كل ملف في مجلد معين ؟ فلقد جربت Dir.foreach ولم تعمل لي بالطريقة الصحيحة.

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

يعتبر Dir.foreach خيار جيد لتكرار الأوامر على الملفات، لكن يجب أن تعرف أن Dir.foreach و Dir.entries سيقومون دائما بإظهار . و .. (المجلد الحالي والمجلد الأب)، وأنت في العادة لا تريد العمل عليها، لذلك تستطيع التخلص منهم بسهولة عن طريق شيفرة برمجية مشابه لهذه:

Dir.foreach('/path/to/dir') do |item|
  next if item == '.' or item == '..'
  # do work on real items
end

Dir.foreach و Dir.entries يقومان بإظهار جميع العناصر في المجلد، سواء أن كانت هذه العناصر مخفية أو غير مخفية، وهذا في العادة ما تريده لكن إذا لم ترد ذلك، فيمكنك القيام بعملية تجاوز للملفات والمجلدات المخفية.
كما يمكنك استخدام Dir.glob الذي يوفر إمكانية اختيار ملفات ذات امتداد معين كما في المثال التالي:
 

Dir.glob('/path/to/dir/*.rb') do |rb_file|
  # do work on files ending in .rb in the desired directory
end

المصدر

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن