Merhabalar, C# FileSystemWatcher Örneği Uygulaması yazım ile C# eğitim setime devam ediyorum. Bu yazımda bir dosya içerisine bir göz ekleyebildiğimiz FileSystemWatcher sınıfını inceleyeceğiz. Bu sınıf sayesinde bir klasör içerisinde yapılan silme, ekleme ve değiştirme işlemlerini takip edebileceğiz.
C# FileSystemWatcher Örneği Uygulaması
C# FileSystemWatcher sınıfı içerisindeki eventlere bir göz atmamız gerekirse;
- Dosya oluşturulduğunda çalışan Created eventi = FileSystemEventHandler
- Dosya değiştirildiğinde çalışan Changed eventi = FileSystemEventHandler
- Dosya silindiğinde çalışan Deleted Eventi = FileSystemEventHandler
- Dosya adı değiştirildiğimde çalışan Renamed eventi = RenamedEventHandler
Dosya adı değiştirme işlemi yapısı gereği farklı bir işlem olduğundan dolayı eventarg ve event handler isimleri farklıdır.
Ayrıca bu yazıda ekstra bir bilgi saha vermiş oldum. Bu bilgide
An exception of type ‘System.InvalidOperationException’ occurred in System.Windows.Forms.dll but was not handled in user code
Additional information: Çapraz iş parçacığı işlemi geçerli değil: ‘textbox1’ denetimine oluşturulduğu iş parçacığı dışında başka bir iş parçacığından erişildi.
hatasının da nasıl önüne geçileceğini söylemiş oldum. Load eventimiz içerisindeki ilk satırda yer alan ve Control ile başlayan satırımız bu hatayı engellemektedir.
Şimdi size projemizin kodlarını vereceğim. Tek formda kullandığımızdan dolayı çok az kodumuz var.
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Windows.Forms; namespace FileSystemWatcher_App { public partial class Form1 : Form { public Form1() { InitializeComponent(); } string izlenecek_klasor = "C:\\Izlenen"; private void Form1_Load(object sender, EventArgs e) { Control.CheckForIllegalCrossThreadCalls = false; FileSystemWatcher dosya_izleme = new FileSystemWatcher(izlenecek_klasor); dosya_izleme.Filter = ""; FileSystemEventHandler tetikle = new FileSystemEventHandler(tetikleme); dosya_izleme.Changed += tetikle; dosya_izleme.Deleted += tetikle; dosya_izleme.Created += tetikle; dosya_izleme.Created += new FileSystemEventHandler(Created); dosya_izleme.Changed += new FileSystemEventHandler(Changed); dosya_izleme.Renamed += new RenamedEventHandler(Renamed); dosya_izleme.Deleted += new FileSystemEventHandler(Deleted); dosya_izleme.EnableRaisingEvents = true; } private void Created(object gelen, FileSystemEventArgs e) { textBox1.Text += e.Name + "'da yeni bir dosya oluşturuldu " + Environment.NewLine; } private void Changed(object gelen, FileSystemEventArgs e) { textBox1.Text += e.Name + "'da bir dosya değişti " + Environment.NewLine; } private void Deleted(object gelen, FileSystemEventArgs e) { textBox1.Text += e.Name + "'da bir dosya silindi " + Environment.NewLine; } private void Renamed(object gelen, RenamedEventArgs e) { textBox1.Text += e.Name + "'da bir dosyanın adı değiştirildi" + Environment.NewLine; } private void tetikleme(object gelen, FileSystemEventArgs e) { textBox1.Text += "Bu klasörde birşeyler oluyor " + e.Name + Environment.NewLine; } } }
Videosu…
C# FileSystemWatcher Örneği Uygulaması yazımda bu kadar arkadaşlar. Diğer yazılarımda görüşmek üzere. Umarım faydalı olmuştur. Aşağıdaki linklerden eğitim seti sayfasına ve github projesine ulaşabilirsiniz.
C Sharp Eğitim Seti eğitimi sayfasına gitmek için tıklayınız. Derslerime özel olarak hazırladığım Github Projeme buradan ulaşabilirsiniz… Bu projenin Github sayfasına buradan ulaşabilirsiniz.
Sağlıcakla ve kodla kalın….