C# nos proporciona ciertas funcionalidades que pueden generar eventos cuando cambia un archivo o directorio. La clase FileSystemWatcher hace el trabajo. Esta clase forma parte del espacio de nombres System.IO y del ensamblado System.IO.FileSystem.Watcher.dll. Actúa como un perro guardián para todo el sistema de archivos. Como sugiere el nombre, esta clase escucha los cambios que se realizan en un directorio específico. Además, proporciona ciertas propiedades mediante las cuales se pueden escuchar los cambios del sistema de archivos. En primer lugar, se puede crear un componente de esta clase que luego escuche los archivos en una computadora local o en una computadora remota. Responde cuando se produce un cambio de directorio o archivo. En este artículo, veremos cómo atrapar eventos del archivo.
Sintaxis:
clase pública FileSystemWatcher: System.ComponentModel.Component,
Ejemplo: En este programa, los eventos que suceden en las ubicaciones especificadas quedan atrapados. Aquí, la ubicación es «c: \\GeeksforGeeks».
C#
// C# program to trap events from the file using System; using System.IO; public class GFG{ // Static function static void nameModified(object theSender, RenamedEventArgs eve) { Console.WriteLine("{0} NameChanged to {1}", eve.OldFullPath, eve.FullPath); } // Static function static void modified(object theSender, FileSystemEventArgs eve) { Console.WriteLine(eve.FullPath + " " + eve.ChangeType); } // Driver code static public void Main() { // Initiating FileSystemWatch class object FileSystemWatcher obj = new FileSystemWatcher(); // Path or location obj.Path = "c:\\GeeksforGeeks"; obj.NotifyFilter = NotifyFilters.FileName | NotifyFilters.DirectoryName | NotifyFilters.LastAccess | NotifyFilters.LastWrite; obj.Filter = ""; obj.Created += new FileSystemEventHandler(modified); obj.Deleted += new FileSystemEventHandler(modified); obj.Changed += new FileSystemEventHandler(modified); obj.Renamed += new RenamedEventHandler(nameModified); // Raising events on the instantiated object obj.EnableRaisingEvents = true; Console.WriteLine("To exit press any key present on the keyboard"); Console.Read(); } }
Producción:
To exit press any key present on the keyboard