Using .NET to Monitor a Directory for Changes

Using .NET to Monitor a Directory for Changes

.NET's FileSystemWatcher class can soothe the paranoid control freak in all of us by monitoring a specified folder for different types of file system changes.

The Code

FileSystemWatcher watcher = new FileSystemWatcher(@"D:\test");

The core of is application is .NET's FileSystemWatcher class which monitors directories for file system changes.

watcher.IncludeSubdirectories = true;watcher.Filter = "";

Tells the FileSystemWatcher object to include changes in subdirectories and raise events on every type of file.

An empty string for the filter will match every file and folder in the watched directory. File types and names can also be added to the filter to create a more fine grained watch.

watcher.Renamed += new RenamedEventHandler(renamed);watcher.Deleted += new FileSystemEventHandler(changed);watcher.Changed += new FileSystemEventHandler(changed);watcher.Created += new FileSystemEventHandler(changed);

Sets the types of file system events the FileSystemWatcher object will respond to. The four possible (and self-explanatory) events are: Renamed, Deleted, Changed, and Created. Each EventHandler takes the method to be executed on that particular event as a paramater in its constructor.

watcher.EnableRaisingEvents = true;

The final piece of the puzzle is to finally tell the FileSystemWatcher to start raising events on the specified directory. Once this statement is executed, we will have a live directory watcher.

Robert Greiner

Robert Greiner

Professional optimist. Passionate about building exceptional teams that do cool things together. I mobilize teams to deliver strategic technical solutions that help businesses succeed.

View Comments
Next Post

Working With Custom Time Strings in C#

Subscribe for free

Subscribe to my newsletter and get the latest posts delivered right to your inbox for free. I don't spam and your email won't be shared with third-parties.

Thanks for subscribing!

Check your inbox to confirm your subscription.

Please enter a valid email address!