Maison >développement back-end >C++ >Pourquoi mon événement modifié de Filesystemwatcher se déclenche-t-il deux fois après une seule modification de fichier?
En utilisant FileSystemWatcher
, vous pouvez observer l'événement Changed
tirant deux fois après une seule modification de fichier. Ce n'est pas un bug, mais un comportement connu. Examinons un scénario typique:
<code class="language-csharp">public void Initialize() { FileSystemWatcher fileWatcher = new FileSystemWatcher(); fileWatcher.Path = "C:\Folder"; fileWatcher.NotifyFilter = NotifyFilters.LastWrite; fileWatcher.Filter = "Version.txt"; fileWatcher.Changed += OnChanged; fileWatcher.EnableRaisingEvents = true; } private void OnChanged(object source, FileSystemEventArgs e) { // ... event handling logic ... }</code>
Ce code surveille "version.txt". La modification et l'enregistrement du fichier déclenchent souvent OnChanged
deux fois. Cela se produit parce que le système de fichiers effectue plusieurs actions pendant le processus d'écriture, chacun déclenchant un événement distinct.
Bien que le raffinage NotifyFilter
restreint les actions surveillées peut aider, ce n'est pas une solution garantie. Dans certaines situations, vous devrez peut-être implémenter le filtrage des événements en double personnalisé (une solution de contournement).
Pour plus d'informations plus détaillées sur ce comportement et les solutions potentielles, consultez cette ressource utile: FichesystemWatcher Conseils .
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!