WatcherChangeTypes Enumeration
Changes that might occur to a file or directory.
This enumeration has a FlagsAttribute attribute that allows a bitwise combination of its member values.
Assembly: System (in System.dll)
| Member name | Description | |
|---|---|---|
| All | The creation, deletion, change, or renaming of a file or folder. | |
| Changed | The change of a file or folder. The types of changes include: changes to size, attributes, security settings, last write, and last access time. | |
| Created | The creation of a file or folder. | |
| Deleted | The deletion of a file or folder. | |
| Renamed | The renaming of a file or folder. |
Each WatcherChangeTypes member is associated with an event in FileSystemWatcher. For more information on the events, see Created, Deleted, Changed, and Renamed.
The following example shows how to create a FileSystemWatcher to monitor file changes (creates, deletes, renames, changes) occurring on a disk drive. The example also shows how to properly receive error notifications.
using System; using System.IO; class Program { static void Main(string[] args) { // Create a FileSystemWatcher to monitor all files on drive C. FileSystemWatcher fsw = new FileSystemWatcher("C:\\"); // Watch for changes in LastAccess and LastWrite times, and // the renaming of files or directories. fsw.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName |NotifyFilters.DirectoryName; // Register a handler that gets called when a // file is created, changed, or deleted. fsw.Changed += new FileSystemEventHandler(OnChanged); fsw.Created += new FileSystemEventHandler(OnChanged); fsw.Deleted += new FileSystemEventHandler(OnChanged); // Register a handler that gets called when a file is renamed. fsw.Renamed += new RenamedEventHandler(OnRenamed); // Register a handler that gets called if the // FileSystemWatcher needs to report an error. fsw.Error += new ErrorEventHandler(OnError); // Begin watching. fsw.EnableRaisingEvents = true; Console.WriteLine("Press \'Enter\' to quit the sample."); Console.ReadLine(); } // This method is called when a file is created, changed, or deleted. private static void OnChanged(object source, FileSystemEventArgs e) { // Show that a file has been created, changed, or deleted. WatcherChangeTypes wct = e.ChangeType; Console.WriteLine("File {0} {1}", e.FullPath, wct.ToString()); } // This method is called when a file is renamed. private static void OnRenamed(object source, RenamedEventArgs e) { // Show that a file has been renamed. WatcherChangeTypes wct = e.ChangeType; Console.WriteLine("File {0} {2} to {1}", e.OldFullPath, e.FullPath, wct.ToString()); } // This method is called when the FileSystemWatcher detects an error. private static void OnError(object source, ErrorEventArgs e) { // Show that an error has been detected. Console.WriteLine("The FileSystemWatcher has detected an error"); // Give more information if the error is due to an internal buffer overflow. if (e.GetException().GetType() == typeof(InternalBufferOverflowException)) { // This can happen if Windows is reporting many file system events quickly // and internal buffer of the FileSystemWatcher is not large enough to handle this // rate of events. The InternalBufferOverflowException error informs the application // that some of the file system events are being lost. Console.WriteLine(("The file system watcher experienced an internal buffer overflow: " + e.GetException().Message)); } } }
Available since 1.1