¿Hay algún mecanismo por el cual se me pueda notificar (en C#) cuando se modifica un archivo en el disco?¿Notificación cuando cambia un archivo?
Respuesta
Eso sería System.IO.FileSystemWatcher.
Utilice FileSystemWatcher
. Puede filtrar solo por eventos de modificación.
Puede usar la clase FileSystemWatcher
.
public void CreateFileWatcher(string path)
{
// Create a new FileSystemWatcher and set its properties.
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = path;
/* 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;
}
// 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);
}
Gracias por el buen ejemplo. También señalaré que puede usar el método WaitForChanged en FileSystemWatcher si está buscando una forma de bloqueo (sincrónica) para observar los cambios. –
Gracias por este ejemplo. MSDN tiene más o menos lo mismo [aquí] (http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.filter%28v=vs.100%29.aspx). Además, algunas personas pueden querer ver un árbol de directorios completo: use 'watcher.IncludeSubdirectories = true;' para lograr eso. – Oliver
- 1. ¿Cómo recibir una notificación cuando un usuario cambia la contraseña o solicita un restablecimiento de contraseña?
- 2. Notificación de Delphi cuando se actualiza un archivo
- 3. Cocoa - ¿Cambia la notificación en NSUserDefaults?
- 4. Obtener notificado cuando un archivo cambia en Dropbox
- 5. ¿Cómo se detecta cuando se cambia un archivo en iCloud?
- 6. jquery texto cambia cuando la entrada cambia
- 7. Evento cuando window.location.href cambia
- 8. reloadData en un UITableView cuando deviceOrientation cambia
- 9. ¿Hay un evento activado cuando dte.Solution.SolutionBuild.StartupProjects cambia?
- 10. ¿Cómo recibir una notificación cuando el estado de SMS cambia de 'En cola' a 'Enviado'?
- 11. ¿Puede quartz.net reconfigurar trabajos cuando cambia el archivo de configuración?
- 12. Cómo recibir una notificación cuando se notifica una notificación
- 13. Cuando un directorio de UNIX cambia su marca de tiempo
- 14. ¿Se rompe cuando cambia window.location?
- 15. ¿Recibe una notificación cuando el usuario carga un cubo S3?
- 16. jQuery - Evento para cuando un atributo de un nodo cambia
- 17. ¿Puedo recibir una notificación cuando comience un nuevo día?
- 18. notificación de angularJS cuando se elimina un elemento
- 19. Obtenga una notificación cuando DTE.ActiveDocument cambie
- 20. Cómo volver a cargar automáticamente un archivo de Python cuando se cambia
- 21. log4j FileAppender no cambia al nuevo archivo cuando logrotate gira el archivo de registro
- 22. Recibir notificación cuando se cambió el valor de RegistryKey
- 23. ¿Cómo se llama cuando cambia un valor de UISlider?
- 24. Actualizar campo automáticamente cuando se cambia un campo diferente
- 25. WPF: Volver a aplicar DataTemplateSelector cuando un cierto valor cambia
- 26. Detectando cuando cambia la altura de un div usando jQuery
- 27. Notificar Un objeto cuando una propiedad de otro objeto cambia
- 28. Cómo generar un evento cuando se cambia DataGrid.ItemsSource
- 29. difusión ¿Intento cuando cambia la fecha?
- 30. cargando eventos fullcalendar cuando el mes cambia
3 respuestas al mismo tiempo. –
Consulte esta [respuesta] (http://stackoverflow.com/questions/381976/handling-multiple-change-events-in-filesystemwatcher/382996#382996) para obtener más información sobre la clase FileSystemWatcher y los eventos que genera. – ChrisF