FileSystemWatcher Constructor

FileSystemWatcher Constructor ()


Initializes a new instance of the FileSystemWatcher class.

Namespace:   System.IO
Assembly:  System (in System.dll)

public FileSystemWatcher()

You cannot watch a remote computer that does not have Windows NT or Windows 2000. You cannot watch a remote Windows NT 4.0 computer from a Windows NT 4.0 computer.

The following table shows initial property values for an instance of FileSystemWatcher.


Initial Value


bitwise OR combination of LastWrite, FileName, and DirectoryName




"*.*" (Watch all files.)






empty string ("")


The component will not watch the specified directory until the Path is set, and EnableRaisingEvents is true.

The following example creates a FileSystemWatcher object to watch the directory specified at run time. The FileSystemWatcher object watches for changes in LastWrite and LastAccess times, and for the creation, deletion, or renaming of text files in the directory. If a file is changed, created, or deleted, the path to the file displays to the console. When a file is renamed, the old and new paths display to the console.

This example uses the System.Diagnostics and System.IO namespaces.

using System;
using System.IO;
using System.Security.Permissions;

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);


for full trust for the immediate caller. This member cannot be used by partially trusted code.

.NET Framework
Available since 1.1
Return to top
© 2015 Microsoft