کنترل FileSystemWatcher

از این کنترل برای مانیتور کردن یک پوشه استفاده می‌شود. بدین معنی که هر گونه تغییر اعم از حذف، تغییر نام، ایجاد یک فایل جدید و … در پوشه مورد نظر را به ما گزارش می‌دهد. برای روشن شدن مطلب یک برنامه ویندوزی جدید ایجاد کنید و یک کنترل FileSystemWatcher بر روی آن بکشید (کنترل به قسمت component try می‌رود).

FileSystemWatcher

با استفاده از پنجره Propertis و خاصیت Path پوشه‌ای که قرار است تغییرات آن مانیتور شود را، مشخص می‌کنیم. که در این مثال پوشه‌ای به نام watch است که در درایو C قرار دارد:
FileSystemWatcher1
حال نوبت به کدنویسی می‌رسد. این کنترل دارای چهار رویداد می‌باشد، که هر کدام مسئول چک کردن تغییرات در پوشه مورد نظر می‌باشند:

FileSystemWatcher3

به ترتیب کدهای زیر را در رویدادهای مربوطه بنویسید :

private void fileSystemWatcher1_Changed(object sender, System.IO.FileSystemEventArgs e)
{
	MessageBox.Show(string.Format("Changed: {0} {1}", e.FullPath, e.ChangeType));
}

private void fileSystemWatcher1_Created(object sender, System.IO.FileSystemEventArgs e)
{
	MessageBox.Show(string.Format("Created: {0} {1}", e.FullPath, e.ChangeType));
}

private void fileSystemWatcher1_Deleted(object sender, System.IO.FileSystemEventArgs e)
{
	MessageBox.Show(string.Format("Deleted: {0} {1}", e.FullPath, e.ChangeType));
}

private void fileSystemWatcher1_Renamed(object sender, System.IO.RenamedEventArgs e)
{
	MessageBox.Show(string.Format("Renamed: {0} {1}", e.FullPath, e.ChangeType));
}

حال برنامه را اجرا کرده و مثلاً یک پوشه در داخل پوشه مورد نظر ایجاد کنید. به محض ایجاد پوشه، پیغامی مبنی بر ایجاد یک پوشه جدید (یا تغییر در پوشه مورد نظر) به شما نمایش داده می‌شود:
FileSystemWatcher4