This documentation is archived and is not being maintained.

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

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1, 1.0