مهمة برمجية: البحث غير المتزامن عن الملفات وفقًا لنمط (قالب)
C#
Medium
async
مهمة «مهمة برمجية: البحث غير المتزامن عن الملفات وفقًا لنمط (قالب)»
```html
اكتب برنامجًا غير متزامن يستقبل دليلاً جذريًا ونمط اسم ملف (مع دعم '*' و '?'). يجب على البرنامج أن يجتاز جميع الدلائل الفرعية بشكل غير متزامن وبشكل متكرر، وأن يعثر على جميع الملفات المطابقة للنمط، ثم يعرض مساراتها الكاملة. لكل ملف يتم العثور عليه، يجب أيضًا قراءة أول 1024 بايت بشكل غير متزامن وحساب تجزئة SHA256 الخاصة بها (كسلسلة سداسية عشرية). يجب أن يكون الإخراج مرتبًا حسب مسار الملف. القيود: عدد الملفات لا يتجاوز 1000، وعمق التداخل يصل إلى 10، ويمكن أن يكون حجم الملف أيًا كان، ولكن يتم دائمًا قراءة أول 1024 بايت.
```
اكتب برنامجًا غير متزامن يستقبل دليلاً جذريًا ونمط اسم ملف (مع دعم '*' و '?'). يجب على البرنامج أن يجتاز جميع الدلائل الفرعية بشكل غير متزامن وبشكل متكرر، وأن يعثر على جميع الملفات المطابقة للنمط، ثم يعرض مساراتها الكاملة. لكل ملف يتم العثور عليه، يجب أيضًا قراءة أول 1024 بايت بشكل غير متزامن وحساب تجزئة SHA256 الخاصة بها (كسلسلة سداسية عشرية). يجب أن يكون الإخراج مرتبًا حسب مسار الملف. القيود: عدد الملفات لا يتجاوز 1000، وعمق التداخل يصل إلى 10، ويمكن أن يكون حجم الملف أيًا كان، ولكن يتم دائمًا قراءة أول 1024 بايت.
```
تنسيق الإدخال
السطر الأول: الدليل الجذر (مسار مطلق أو نسبي).
السطر الثاني: نمط اسم الملف (قد يحتوي على '*' و '?').
تنسيق الإخراج
لكل ملف تم العثور عليه، قم بإخراج سطر: "<المسار الكامل> <SHA256 hash لأول 1024 بايت>". الأسطر مرتبة حسب المسار بترتيب معجمي. إذا كان الملف فارغًا، يتم حساب التجزئة من سلسلة فارغة.
أمثلة
مثال 1
الإدخال
/tmp/testdir
file?.dat
الإخراج
مثال 2
الإدخال
Programming is fun
الإخراج
مثال 3
الإدخال
3
1 2 3
4 5 6
7 8 9
الإخراج
مثال 4
الإدخال
hello world
world
java
الإخراج
main.cs