En ganske almindelig søndag, hvor jeg har rig chance for at lege med FileSystemWatcher som ligger i System.IO namespacet. Nedenstående eksempel er en fiks lille måde at lege med events som sker, ved filsletning, filopretning, filændring osv.
I eksemplet, har jeg lavet en ny instans af FileSystemWatcher og filtreret på filtyper *.txt – altså alle filetyper. Jeg har forklaret min watcher hvilken mappe den skal holde øje med og at den ikke skal kigge på undermappe.
Derefter har jeg bedt min watcher kigge på eventet Deleted, som udføre en handling snart en .txt-fil slettet. I det øjeblik filen slettet, skrives der i en fil på C-drevet i mappen “Logs”, at filen er blevet slettet. Samtidig skriver den samme tekst i en listbox, for at synliggøre at der sker en handling i det filen slettes.
Så sidder du med et projekt, hvor du har brug for FileSystemWatcher, og har du aldrig rodet med det før, er nedenstående kode eksempel værd at kigge på 🙂
Det er skrevet i C# og GUI class lib er Windows Forms.
using System; using System.Windows.Forms; using System.IO; namespace FileSystemWatcher { public partial class Form1 : Form { System.IO.FileSystemWatcher watcher = new System.IO.FileSystemWatcher(); public Form1() { InitializeComponent(); watcher.Path = "C:\\Test"; watcher.Filter = "*.txt"; watcher.IncludeSubdirectories = false; watcher.Deleted += Watcher_Deleted; watcher.EnableRaisingEvents = true; } private void Watcher_Deleted(object sender, FileSystemEventArgs e) { using (var streamWriter = new StreamWriter("C:\\Logs\\Test.txt", true)) { streamWriter.WriteLine("{0}: {1} has been removed.", DateTime.Now, e.Name); } listBox1.Invoke(new Action(() => listBox1.Items.Add(string.Format("{0}: {1} has been removed.", DateTime.Now, e.Name)))); } } }