سؤال

هنا هو السيناريو:

أنا أكتب تطبيقًا سيراقب أي تغييرات في دليل معين.سيتم غمر هذا الدليل بآلاف الملفات كل دقيقة بمعرف GUID فريد "تقريبًا".تنسيق الملف هو هذا:

Guid.Dat حيث Guid == xxxxxxxxxxxxxxxxxxxxxxxxx (المحتويات الداخلية ليست ذات صلة ، لكنها مجرد بيانات نصية)

سيكون تطبيقي عبارة عن نموذج يحتوي على مربع نص واحد يعرض جميع الملفات التي تتم إضافتها وحذفها في الوقت الفعلي.في كل مرة يأتي ملف جديد، يجب علي تحديث مربع النص بهذا الملف، ولكن يجب علي أولاً التأكد من أن هذا المعرف الفريد العمومي (GUID) شبه الفريد فريد حقًا، وإذا كان كذلك، فقم بتحديث مربع النص بهذا الملف الجديد.

عند إزالة ملف من هذا الدليل، تأكد من وجوده، ثم احذفه، وقم بتحديث مربع النص وفقًا لذلك.

المشكلة هي أنني كنت أستخدم برنامج مراقبة الملفات .NET ويبدو أن هناك مخزنًا مؤقتًا داخليًا يتم تفجيره في كل مرة يأتي فيها الملف (buffersize + 1).لقد حاولت أيضًا الاحتفاظ بقائمة داخلية في تطبيقي، وأضف فقط كل ملف يأتي، ولكن قم بإجراء فحص المعرف الفريد العمومي (GUID) لاحقًا، ولكن بدون نرد.

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

المحلول

هناك شيئان يدوران في ذهني:

  • إذا كان الدليل لا فريد، ألن يقوم بالكتابة فوق الملف الذي يحمل نفس الاسم، أم أن الفحص يعتمد على بحث يقوم ببعض الإجراءات الخارجية (على سبيل المثال،التحقق من الأرشيف)؟(أي.هل هذه لحظة ياغني؟)
  • لقد استخدمت FileSystemWatcher من قبل بنجاح جيد جدًا، هل يمكنك أن تعطينا بعض الأفكار حول ذلك كيف هل تفعل الأشياء في الواقع؟
  • عندما تقول "لا يوجد نرد" عند العمل مع قائمتك المخصصة، ما هي المشكلة؟وكيف كنت تتحقق من تغييرات نظام الملفات بدون FileSystemWatcher؟!

آسف لم يتم الرد حتى الآن، فقط أريد أن أعرف المزيد عن المشكلة :)

نصائح أخرى

أقترح عليك إلقاء نظرة على SHChangeNotify استدعاء واجهة برمجة التطبيقات (API)، والذي يمكنه إعلامك بجميع أنواع أحداث الصدفة.لمراقبة نشاط إنشاء الملفات وحذفها، قد تحتاج إلى إيلاء اهتمام خاص للوسيطتين SHCNE_CREATE وSHCNE_DELETE.

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