使用FileSystemWatcher
>,您可能会在一个文件修改后观察Changed
事件两次。这不是一个错误,而是已知行为。让我们检查一个典型的情况:
<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>
此代码监视“ version.txt”。 修改和保存文件通常触发OnChanged
两次。 发生这种情况是因为文件系统在写入过程中执行多个操作,每个操作都可能触发一个单独的事件。
在限制受监视的动作可以帮助您的情况下,这不是一个保证的解决方案。 在某些情况下,您可能需要实现自定义重复的事件过滤(解决方法)。
。NotifyFilter
有关此行为和潜在解决方案的更多详细信息,请咨询此有用的资源:
以上是一个文件修改后,为什么我的Filesystemwatcher更改了事件射击?的详细内容。更多信息请关注PHP中文网其他相关文章!