سؤال

أنا أبحث عن مكتبة C# للحصول على الملفات أو الدليل من دليل باستخدام نمط معقد مثل ذلك المستخدم في Ant:

  • dir1/dir2/**/SVN/* --> يطابق جميع الملفات الموجودة في دلائل SVN الموجودة في أي مكان في شجرة الدليل ضمن dir1/dir2
  • **/test/** --> يطابق جميع الملفات التي تحتوي على عنصر اختبار في مسارها، بما في ذلك الاختبار كاسم ملف.
  • ...

هل أحتاج إلى ترميزه بنفسي؟استخراج ما أريد من NAnt؟أو أن هذه المكتبة موجودة ومهارتي في Google سيئة.

Directory.GetFiles(String path, String searchPattern) لا يتعامل مع نمط الدليل و NDepend.Helpers.FileDirectoryPath لا (إنها مكتبة رائعة لمعالجة المسار بالمناسبة)

هل كانت مفيدة؟

المحلول

ترميزها بنفسك لن يكون بهذه الصعوبة.

ما عليك سوى استخدام تعبير عادي تمت صياغته بشكل صحيح باستخدام أساليب System.IO لإنشاء المسار الكامل

نصائح أخرى

هل أنت مرتاح لتعريف "*" على أنه "أي شيء باستثناء الشرطة المائلة" و"**" على أنه "أي شيء على الإطلاق"؟إذا كان الأمر كذلك، فإن تحويل regex يبدو واضحًا.

*   -> [^\/]*
**  -> .*

ثم يتعلق الأمر بتعداد جميع الملفات بشكل متكرر، والتحقق مما إذا كانت مساراتها تتطابق مع التعبير العادي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top