مراقبة ما يحدث في ملفاتك ومجلداتك - سي شارب - مقـــالات - Top Coder
Welcome to our Site
الدخــول Or تسجـــيل
السبت
2016-12-10
5:36 PM
تسجــــيل | دخـــول
الرئيسية » مقالات » سي شارب

مراقبة ما يحدث في ملفاتك ومجلداتك
مراقبة ما يحدث في ملفاتك

مقـــدمه
سنتحدث اليوم عن طريقه لمراقبة ما يحدث في ملفاتك ومجلداتك , وتسجيل ما يطرأ عليها من تغييرات سواء ادراج او مسح اي ملف او مجلد , وايضا في حالة تغيير اسم اي منهما في اي لحظه  
FileSystemWatcher Control
في برنامجنا سنستخدم كنترول يسمي FileSystemWatcher , والذي من خلاله تستطيع مراقبة ما يحدث داخل مجلد او مسار معين في اي وقت , حيث يقوم هذا الكنترول بالمراقبة للأحداث الأربعه الاتيه :
1- إدراج مجلد او ملف , ويتم من خلال الحدث Created .
2- مسح مجلد او ملف , ويتم من خلال الحدث Deleted .
3- تغيير اسم مجلد او ملف , وبتم ذلك من خلال الحدث Renamed .
4- أي تغيير يطرأ على اي مجلد , وهو يمكن ان يشمل حدثي ادراج و حذف الملفات او المجلدات , ويتم من خلال الحدث Changed .

حيث يتم تعيين مسار معين ليقوم الكنترول (المراقب) بالتجسس عليه ومراقبته , وعند حدوث اي من الاحداث السابقه - ادراج , حذف , تغيير اسم , تغيير - داخل المجلد او المسار , فان حدثاً من الاربعه الاتيه ينفذ - حسب الحدث الذي وقع - فمثلا في حال تعيين المسار كالمحرك D مثلا , ففي حالة حذف ملف او مجلد داخل المحرك , فان الحدث Deleted يعمل في الحال , ويشمل الحدث على البيانات الاتيه :
1- Name وهو يشير الى اسم الملف او المجلد المحذوف .
2- Type وهو يشير الى نوع التغيير , وهنا يكون النوع مسح (Delete) .
3- FullPath وهو يشير الى المسار الكامل للملف او المجلد موضع الحدث .

والبيانات الثلاثة السابقه تسري على كافة الاحداث الاخرى , فنفس البيانات يمكن استخلاصها من كل حدث , ولكن حدث تغيير الاسم Rename به بيانين اضافيين , وهما :
1- OldName وهو يشير الى الاسم القديم للملف الذي تغير اسمه - حيث ان الاسم في الحدث يظهر بالاسم الجديد .
2- OldFullPath وهو يشير الى المسار الكامل قبل تغيير الاسم .

هذا ويمكننا توسيع نطاق المراقبه , حيث افتراضياً يقوم الكنترول بمراقبة المجلد المحدد فقط , فمثلا عند تحديد ال D للمراقبه , فان اي حدث داخل اي مجلد فرعي منه يكون خارج نطاق المراقبه , لكن يمكن تفعيل خاصية مراقبة المجلدات الفرعيه , بحيث يشمل نظام المراقبه كل ما هو موجود داخل المحرك D من ملفات ومجلدات , وتفعل الخاصيه من خلال وضع IncludeSubdirectories = true للكنترول , وهذا يعتبر الافضل .
تنفيذ البرنامج
كل ما نحتاجه في برنامجنا كما قلنا هو الكنترول FileSystemWatcher وهو عباره عن Component وليس كنترول مرئي , فيمكنك اضافته من Tool Box الى برنامجك , وقم بتغيير الخصائص التي تريد حسب حاجتك , وأهم الخصائص المطلوبه هي :
1- Filter وهو يستخدم لترشيح الملفات التي يتم مراقبتها , وافتراضيا يكون *.* لمراقبة جميع الملفات والفولدرات .
2- IncludeSubdirectories وتم ذكرها من قبل , وهي الخاصه بتضمين المجلدات الفرعيه داخل نطاق المراقبه , وافتراضياً تكون غير مفعله false , يمكنك تغييرها في حالة كنت تريد ذلك .
3- Path وهو مسار  المجلد الذي سيقوم بمراقبته .
4- EnableRaisingEvents وهو يشير الى حالة المراقب , true تعني انه يقوم بالمراقبه , false تعني انه لا يقوم بمراقبة الاحداث , او بمعنى اخر فان هذه الخاصيه تتحكم في تشغيل / ايقاف المراقب .

وبعد اضافة الكنترول للبرنامج , يمكنك البدء في عملية المراقبه من خلال تفعيل الاحداث التير تريد , Create , Delete , Rename , Change وداخل كل حدث تضع الكود الذي تريده ان ينفذ عن وقوع الحدث , فمثلا يمكنك اضافة ListView تسجل به ما حدث في توقيته , ليتم مراجعته فيما بعد .

وعلى سبيل المثال هذا كود حدث Changed الخاص بالكنترول  
Changed Event
 
حيث يتم استخلاص البيانات المطلوبه من المعامل ( e ) , حيث يحتوي على الثلاثة بيانات الاساسيه , وتذكر انه في حالة الحدث Renamed فان هناك بيانين اضافيين هما  
Renamed Additional Data
تشغيل و تعطيل المراقب  
يمكنك وضع الخاصيه EnableRaisingEvents داخل البرنامج = false , بحيث يمكن تغييرها من خلال زر معين بوضعها true بتشغيلها , ووضعها false مرة اخرى لتعطيلها , وذلك حتى تكون لديك المرونه في تشغيل وتعطيل المراقبه في اي وقت , والكود التالي للتشغيل , ويليه كود التعطيل  
Enable Spying
Disable Spying
ختـــام
وكذلك نرى امكانيه المراقبة لكل ما يحدث من خلال الكنترول المميز FileSystemWatcher , حيث بامكانيته تسجيل ما يحدث لكل صغيرة وكبيره على الحاسب , فيمكنك مثلا عمل مراقب لكل محرك داخل الهارد الخاص بك , بحيث يقوم كل منهم بمراقبة ما يحدث على محركه , لتكون كل العمليات تحت المراقبة الكامله .
تحميل المشروع
 Written by :  Mohammed Mahmoud
الفئة: سي شارب | أضاف: ham_mody2000 (2011-09-18 5:07 AM)
مشاهده: 1407 | وسمات: filesystemwatcher, watcher, Spy, rename event, C# | الترتيب: 0.0/0


أترك تعليقك من خلال حسابك على الفيس بوك

تعليقات مشتركي الموقع

مجموع المقالات: 0
إضافة تعليق يستطيع فقط المستخدمون المسجلون
[ التسجيل | دخول ]
طريقة الدخول
بحث
Our Facebook community

تم إطلاق صفحة توب كودر على الفيس بوك

Advertisment
الأحـــدث
hitstatus
Copyright Mohammed Mahmoud © 2016
إنشاء موقع مجاني с uCoz