سؤال

أنا أستخدم ملف filesystemwatcher على خادم Windows لمشاهدة مجلد على خادم Windows. يمكنني أيضا الوصول إلى نفس المجلد من خادم Linux باستخدام Samba. إذا قمت بنسخ ملف من المجلد المشاهد إلى مكان آخر، يتم إنشاء حدث تغيير لملف المصدر. هل هذا السلوك صحيح؟ يبدو أنه تغيير الوقت "آخر الوصول" في الملف. كيف يمكنني تجاهل هذا النوع من التغيير؟

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

المحلول

يتم تعيين الوقت "آخر الوصول إلى" بشكل غير متسق بواسطة برامج Windows: على سبيل المثال، سيتم إعادة تعيين قائمة سياق خصائص الملف في Windows هذه المرة. كما تذكر، لا تقوم Windows Copy بتعيين وقت "الوصول الأخير"، ولكن نسخة من ملف على خادم Windows باستخدام Samba يفعلان برامج تشغيل Samba الداخلية التي تقوم بها النسخة.

الحل الوحيد الخاص بك، أخشى، هو تجاهل وقت "الوصول الأخير" باستخدام عامل تصفية في ملفات filesystemwatcher:

FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = "c:\yourpathhere";
watcher.NotifyFilter = NotifyFilters.LastWrite 
   | NotifyFilters.FileName | NotifyFilters.DirectoryName;

أو مشابه.

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