FileSystemWatcher Constructors  
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Initializes a new instance of the FileSystemWatcher class.
Overloads
| FileSystemWatcher() | Initializes a new instance of the FileSystemWatcher class. | 
| FileSystemWatcher(String) | Initializes a new instance of the FileSystemWatcher class, given the specified directory to monitor. | 
| FileSystemWatcher(String, String) | Initializes a new instance of the FileSystemWatcher class, given the specified directory and type of files to monitor. | 
FileSystemWatcher()
- Source:
- FileSystemWatcher.cs
- Source:
- FileSystemWatcher.cs
- Source:
- FileSystemWatcher.cs
- Source:
- FileSystemWatcher.cs
Initializes a new instance of the FileSystemWatcher class.
public:
 FileSystemWatcher();public FileSystemWatcher();Public Sub New ()Examples
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;
namespace MyNamespace
{
    class MyClassCS
    {
        static void Main()
        {
            using var watcher = new FileSystemWatcher(@"C:\path\to\folder");
            watcher.NotifyFilter = NotifyFilters.Attributes
                                 | NotifyFilters.CreationTime
                                 | NotifyFilters.DirectoryName
                                 | NotifyFilters.FileName
                                 | NotifyFilters.LastAccess
                                 | NotifyFilters.LastWrite
                                 | NotifyFilters.Security
                                 | NotifyFilters.Size;
            watcher.Changed += OnChanged;
            watcher.Created += OnCreated;
            watcher.Deleted += OnDeleted;
            watcher.Renamed += OnRenamed;
            watcher.Error += OnError;
            watcher.Filter = "*.txt";
            watcher.IncludeSubdirectories = true;
            watcher.EnableRaisingEvents = true;
            Console.WriteLine("Press enter to exit.");
            Console.ReadLine();
        }
        private static void OnChanged(object sender, FileSystemEventArgs e)
        {
            if (e.ChangeType != WatcherChangeTypes.Changed)
            {
                return;
            }
            Console.WriteLine($"Changed: {e.FullPath}");
        }
        private static void OnCreated(object sender, FileSystemEventArgs e)
        {
            string value = $"Created: {e.FullPath}";
            Console.WriteLine(value);
        }
        private static void OnDeleted(object sender, FileSystemEventArgs e) =>
            Console.WriteLine($"Deleted: {e.FullPath}");
        private static void OnRenamed(object sender, RenamedEventArgs e)
        {
            Console.WriteLine($"Renamed:");
            Console.WriteLine($"    Old: {e.OldFullPath}");
            Console.WriteLine($"    New: {e.FullPath}");
        }
        private static void OnError(object sender, ErrorEventArgs e) =>
            PrintException(e.GetException());
        private static void PrintException(Exception? ex)
        {
            if (ex != null)
            {
                Console.WriteLine($"Message: {ex.Message}");
                Console.WriteLine("Stacktrace:");
                Console.WriteLine(ex.StackTrace);
                Console.WriteLine();
                PrintException(ex.InnerException);
            }
        }
    }
}
Imports System.IO
Namespace MyNamespace
    Class MyClassVB
        Shared Sub Main()
            Using watcher = New FileSystemWatcher("C:\path\to\folder")
                watcher.NotifyFilter = NotifyFilters.Attributes Or
                                       NotifyFilters.CreationTime Or
                                       NotifyFilters.DirectoryName Or
                                       NotifyFilters.FileName Or
                                       NotifyFilters.LastAccess Or
                                       NotifyFilters.LastWrite Or
                                       NotifyFilters.Security Or
                                       NotifyFilters.Size
                AddHandler watcher.Changed, AddressOf OnChanged
                AddHandler watcher.Created, AddressOf OnCreated
                AddHandler watcher.Deleted, AddressOf OnDeleted
                AddHandler watcher.Renamed, AddressOf OnRenamed
                AddHandler watcher.Error, AddressOf OnError
                watcher.Filter = "*.txt"
                watcher.IncludeSubdirectories = True
                watcher.EnableRaisingEvents = True
                Console.WriteLine("Press enter to exit.")
                Console.ReadLine()
            End Using
        End Sub
        Private Shared Sub OnChanged(sender As Object, e As FileSystemEventArgs)
            If e.ChangeType <> WatcherChangeTypes.Changed Then
                Return
            End If
            Console.WriteLine($"Changed: {e.FullPath}")
        End Sub
        Private Shared Sub OnCreated(sender As Object, e As FileSystemEventArgs)
            Dim value As String = $"Created: {e.FullPath}"
            Console.WriteLine(value)
        End Sub
        Private Shared Sub OnDeleted(sender As Object, e As FileSystemEventArgs)
            Console.WriteLine($"Deleted: {e.FullPath}")
        End Sub
        Private Shared Sub OnRenamed(sender As Object, e As RenamedEventArgs)
            Console.WriteLine($"Renamed:")
            Console.WriteLine($"    Old: {e.OldFullPath}")
            Console.WriteLine($"    New: {e.FullPath}")
        End Sub
        Private Shared Sub OnError(sender As Object, e As ErrorEventArgs)
            PrintException(e.GetException())
        End Sub
        Private Shared Sub PrintException(ex As Exception)
            If ex IsNot Nothing Then
                Console.WriteLine($"Message: {ex.Message}")
                Console.WriteLine("Stacktrace:")
                Console.WriteLine(ex.StackTrace)
                Console.WriteLine()
                PrintException(ex.InnerException)
            End If
        End Sub
    End Class
End Namespace
Remarks
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.
| Property | Initial Value | 
|---|---|
| NotifyFilter | bitwise OR combination of LastWrite,FileName, andDirectoryName | 
| EnableRaisingEvents | false | 
| Filter | "*.*" (Watch all files.) | 
| IncludeSubdirectories | false | 
| InternalBufferSize | 8192 | 
| Path | empty string ("") | 
Note
The component will not watch the specified directory until the Path is set, and EnableRaisingEvents is true.
See also
- NotifyFilters
- FileSystemEventArgs
- FileSystemEventHandler
- InternalBufferOverflowException
- Path
- RenamedEventArgs
- RenamedEventHandler
- WaitForChangedResult
- WatcherChangeTypes
Applies to
FileSystemWatcher(String)
- Source:
- FileSystemWatcher.cs
- Source:
- FileSystemWatcher.cs
- Source:
- FileSystemWatcher.cs
- Source:
- FileSystemWatcher.cs
Initializes a new instance of the FileSystemWatcher class, given the specified directory to monitor.
public:
 FileSystemWatcher(System::String ^ path);public FileSystemWatcher(string path);new System.IO.FileSystemWatcher : string -> System.IO.FileSystemWatcherPublic Sub New (path As String)Parameters
- path
- String
The directory to monitor, in standard or Universal Naming Convention (UNC) notation.
Exceptions
The path parameter is null.
The path parameter is an empty string ("").
-or-
The path specified through the path parameter does not exist.
path is too long.
Remarks
Note
The component will not watch the specified directory until the Path is set, and EnableRaisingEvents is true.
The component can watch files on your personal computer, a network drive, or a remote computer.
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 Filter property is set by default to watch all files.
See also
- NotifyFilters
- FileSystemEventArgs
- FileSystemEventHandler
- Filter
- InternalBufferOverflowException
- Path
- RenamedEventArgs
- RenamedEventHandler
- WaitForChangedResult
- WatcherChangeTypes
Applies to
FileSystemWatcher(String, String)
- Source:
- FileSystemWatcher.cs
- Source:
- FileSystemWatcher.cs
- Source:
- FileSystemWatcher.cs
- Source:
- FileSystemWatcher.cs
Initializes a new instance of the FileSystemWatcher class, given the specified directory and type of files to monitor.
public:
 FileSystemWatcher(System::String ^ path, System::String ^ filter);public FileSystemWatcher(string path, string filter);new System.IO.FileSystemWatcher : string * string -> System.IO.FileSystemWatcherPublic Sub New (path As String, filter As String)Parameters
- path
- String
The directory to monitor, in standard or Universal Naming Convention (UNC) notation.
- filter
- String
The type of files to watch. For example, "*.txt" watches for changes to all text files.
Exceptions
The path parameter is an empty string ("").
-or-
The path specified through the path parameter does not exist.
path is too long.
Remarks
Note
The component will not watch the specified directory until the Path is set, and EnableRaisingEvents is true.
The component can watch files on your personal computer, a network drive, or a remote computer.
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.
See also
- NotifyFilters
- FileSystemEventArgs
- FileSystemEventHandler
- Filter
- InternalBufferOverflowException
- Path
- RenamedEventArgs
- RenamedEventHandler
- WaitForChangedResult
- WatcherChangeTypes