NotifyFilter Property

FileSystemWatcher.NotifyFilter Property


Gets or sets the type of changes to watch for.

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

public NotifyFilters NotifyFilter { get; set; }

Property Value

Type: System.IO.NotifyFilters

One of the NotifyFilters values. The default is the bitwise OR combination of LastWrite, FileName, and DirectoryName.

Exception Condition

The value is not a valid bitwise OR combination of the NotifyFilters values.


The value that is being set is not valid.

You can combine the members of the NotifyFilters enumeration to watch for more than one type of change at a time. For example, you can watch for changes in size of a file, and for changes in the LastWrite time. This raises an event anytime there is a change in file or folder size, or a change in the LastWrite time of the file or folder.

This is one way to filter out unwanted notifications. For more information on filtering out unwanted notifications, see the Filter, IncludeSubdirectories, and InternalBufferSize properties.

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

Use the System.Diagnostics and System.IO namespaces for this example.

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

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