How to monitor a directory in C#
Microsoft Net Framework

In C#, you can use the FileSystemWatcher class to monitor a directory for changes. Here is an example of how to use the FileSystemWatcher class to monitor a directory and handle changes:

 

using System;
using System.IO;

class DirectoryWatcher
{
    static void Main()
    {
        // Set up the FileSystemWatcher object
        FileSystemWatcher watcher = new FileSystemWatcher();
        watcher.Path = @"C:\Temp";
        watcher.NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.FileName;
        watcher.Filter = "*.*";

        // Add event handlers for the events you want to monitor
        watcher.Changed += new FileSystemEventHandler(OnChanged);
        watcher.Created += new FileSystemEventHandler(OnChanged);
        watcher.Deleted += new FileSystemEventHandler(OnChanged);
        watcher.Renamed += new RenamedEventHandler(OnRenamed);

        // Start monitoring the directory
        watcher.EnableRaisingEvents = true;

        // Wait for user to quit program
        Console.WriteLine("Press 'q' to quit.");
        while (Console.Read() != 'q') ;
    }

    // Define the event handlers
    private static void OnChanged(object source, FileSystemEventArgs e)
    {
        Console.WriteLine($"File {e.FullPath} {e.ChangeType}");
    }

    private static void OnRenamed(object source, RenamedEventArgs e)
    {
        Console.WriteLine($"File {e.OldFullPath} renamed to {e.FullPath}");
    }
}
 

 

 

In this example, the FileSystemWatcher object is set up to monitor the C:\Temp directory for changes to any file. The NotifyFilter property is set to LastWrite and FileName, which means that the watcher will only notify you if a file is changed or if a new file is created. The Filter property is set to *.* to watch for all files.

The Changed, Created, Deleted, and Renamed events are handled by the event handlers OnChanged and OnRenamed. These event handlers simply print out a message to the console indicating what file was changed and what type of change occurred.

Finally, the EnableRaisingEvents property is set to true to start monitoring the directory. The program waits for the user to press 'q' before exiting.

Share This with your friend by choosing any social account


Upcoming Articles
You may also read following recent Post
Copyright Future Minutes © 2015- 2024 All Rights Reserved.   Terms of Service  |   Privacy Policy |  Contact US|  Pages|  Whats new?
Update on: Dec 20 2023 05:10 PM
03
07

New Messages

George Floyd
  • Edit Post Edit This Post within a Hour
  • Hide Chat Hide This Post
  • Delete Chat If inappropriate Post By Mistake
  • Report Inappropriate Chat
  • 4.5kb
  • Hi James! Please remember to buy the food for tomorrow! I’m gonna be handling the gifts and Jake’s gonna get the drinks
  • Hi James! Please remember to buy the food for tomorrow! I’m gonna be handling the gifts and Jake’s gonna get the drinks
  • Hi James! Please remember to buy the food for tomorrow! I’m gonna be handling the gifts and Jake’s gonna get the drinks