Surveillance efficace des répertoires à l'aide de FileSystemWatcher
Lorsque vous travaillez avec une application Windows Forms, la surveillance d'un répertoire et la gestion des fichiers qui y sont déposés peuvent être une tâche courante tâche. Cependant, rencontrer une interruption inattendue du programme peut soulever des inquiétudes.
Une des raisons potentielles de ce problème réside dans les filtres de notification. Le code fourni comprenait plusieurs filtres de notification, notamment LastAccess, FileName et DirectoryName. Le programme a alors tenté d'ouvrir des fichiers qui étaient encore copiés dans le répertoire.
Pour résoudre ce problème, il est conseillé d'affiner les filtres de notification. Dans l’extrait de code mis à jour, tous les filtres, à l’exception du filtre LastWrite, ont été supprimés. Cela garantit que le programme ne réagit que lorsqu'une opération d'écriture est effectuée sur le répertoire, empêchant ainsi les tentatives d'ouverture de fichiers en cours de copie.
private void watch() { FileSystemWatcher watcher = new FileSystemWatcher(); watcher.Path = path; watcher.NotifyFilter = NotifyFilters.LastWrite; watcher.Filter = "*.*"; watcher.Changed += new FileSystemEventHandler(OnChanged); watcher.EnableRaisingEvents = true; }
En implémentant ce changement, le programme peut surveiller efficacement le répertoire et gérer les fichiers entrants sans rencontrer de résiliation prématurée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!