Permanent folder monitoring implemented in c#


Good afternoon. I'm trying to write a tiny c# program that will monitor the activity of a given folder and display information about the time the Label was last modified. Tried to implement this process through While:

public partial class Form1 : Form
    bool start = true;
    public Form1()

    private void Form1_Load(object sender, EventArgs e)

        button1.Text = ("Начать проверку");
        button2.Text = ("Остановить проверку");

    private void button1_Click(object sender, EventArgs e)

        while (start == false)
            DirectoryInfo dir = new DirectoryInfo(@"C:\Users");
            label1.Text = ("Полный путь: " + dir.FullName);
            label2.Text = ("Последнее обновление: " + dir.LastWriteTime);


But, this code example does nothing at all.



Here's a link to an introduction to watching filesystem events !

There it is just written about monitoring the events of the file system and there are examples.

FileSystemWatcher.Changed – The event occurs when a file or directory in the specified Path is changed.

FileSystemWatcher.Renamed – The event occurs when a file or directory in the specified Path is renamed.

The Changed event occurs unexpectedly when a file is renamed, but it does not occur when a directory name is changed.

Use the Renamed event to track renames.


public class Watcher

    public static void Main()

    [PermissionSet(SecurityAction.Demand, Name="FullTrust")]
    public static void Run()
        string[] args = System.Environment.GetCommandLineArgs();

        // If a directory is not specified, exit program.
        if(args.Length != 2)
            // Display the proper way to call the program.
            Console.WriteLine("Usage: Watcher.exe (directory)");

        // Create a new FileSystemWatcher and set its properties.
        FileSystemWatcher watcher = new FileSystemWatcher();
        watcher.Path = args[1];
        /* Watch for changes in LastAccess and LastWrite times, and
           the renaming of files or directories. */
        watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite
           | NotifyFilters.FileName | NotifyFilters.DirectoryName;
        // Only watch text files.
        watcher.Filter = "*.txt";

        // Add event handlers.
        watcher.Changed += new FileSystemEventHandler(OnChanged);
        watcher.Created += new FileSystemEventHandler(OnChanged);
        watcher.Deleted += new FileSystemEventHandler(OnChanged);
        watcher.Renamed += new RenamedEventHandler(OnRenamed);

        // Begin watching.
        watcher.EnableRaisingEvents = true;

        // Wait for the user to quit the program.
        Console.WriteLine("Press \'q\' to quit the sample.");

    // Define the event handlers.
    private static void OnChanged(object source, FileSystemEventArgs e)
        // Specify what is done when a file is changed, created, or deleted.
       Console.WriteLine("File: " +  e.FullPath + " " + e.ChangeType);

    private static void OnRenamed(object source, RenamedEventArgs e)
        // Specify what is done when a file is renamed.
        Console.WriteLine("File: {0} renamed to {1}", e.OldFullPath, e.FullPath);
Scroll to Top