FileSystemWatcher.EnableRaisingEvents Property
Gets or sets a value indicating whether the component is enabled.
Assembly: System (in System.dll)
| Exception | Condition |
|---|---|
| ObjectDisposedException |
The FileSystemWatcher object has been disposed. |
| PlatformNotSupportedException |
The current operating system is not Microsoft Windows NT or later. |
| FileNotFoundException |
The directory specified in Path could not be found. |
| ArgumentException |
Path has not been set or is invalid. |
The component will not raise events unless you set EnableRaisingEvents to true.
Note
|
|---|
|
The component will not watch the specified directory until the Path property has been set and EnableRaisingEvents is true. |
The WaitForChanged method allows event handlers to be invoked to respond to file changes even if this property is set to false.
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() { Run(); } [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)"); return; } // 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."); while(Console.Read()!='q'); } // 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 SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Setting this property in an initializer can cause a System.ArgumentException - "The path is not of a legal form." This will happen if the 'EnableRaisingEvents" property is set before the 'Path' property in the initializer.
This works:
var fw = new FileSystemWatcher()
{
Path = path,
EnableRaisingEvents = true
};
This does not:
var fw = new FileSystemWatcher()
{
EnableRaisingEvents = true,
Path = path
};
- 5/23/2011
- Dave Black
Note