FileSystemWatcher.Changed Event
Assembly: System (in system.dll)
The Changed event is raised when changes are made to the size, system attributes, last write time, last access time, or security permissions of a file or directory in the directory being monitored.
Note: |
|---|
| Common file system operations might raise more than one event. For example, when a file is moved from one directory to another, several OnChanged and some OnCreated and OnDeleted events might be raised. Moving a file is a complex operation that consists of multiple simple operations, therefore raising multiple events. Likewise, some applications (for example, antivirus software) might cause additional file system events that are detected by FileSystemWatcher. |
Use NotifyFilter to restrict the number of notifications raised when this event is handled.
Note: |
|---|
| The Changed event is raised unexpectedly when a file is renamed, but is not raised when a directory is renamed. To watch for renaming, use the Renamed event. |
The following example uses the Changed event to display the file path to the console whenever the watched file is changed.
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); } }
public class Watcher
{
public static void main(String[] args1)
{
Run();
}
/** @attribute 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.set_Path(args[1]);
/* Watch for changes in LastAccess and LastWrite times, and
the renaming of files or directories.
*/
watcher.set_NotifyFilter
(NotifyFilters.LastAccess |NotifyFilters.LastWrite |
NotifyFilters.FileName | NotifyFilters.DirectoryName);
// Only watch text files.
watcher.set_Filter("*.txt");
// Add event handlers.
watcher.add_Changed(new FileSystemEventHandler(OnChanged));
watcher.add_Created(new FileSystemEventHandler(OnChanged));
watcher.add_Deleted(new FileSystemEventHandler(OnChanged));
watcher.add_Renamed(new RenamedEventHandler(OnRenamed));
// Begin watching.
watcher.set_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.get_FullPath() + " "
+ e.get_ChangeType()));
} //OnChanged
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.get_OldFullPath(),e.get_FullPath());
} //OnRenamed
} //Watcher
Note: