And*_*ers 3 .net c# filesystemwatcher c#-4.0
我正在使用 来FileSystemWatcher监视某个目录,当有人将编辑保存到文件时,我需要引发一个事件,而当他们创建或移动文件时,我需要引发另一个事件。
使用 和 Created 事件的组合可以很好地监视移动的文件Deleted。当有人将编辑保存到文件时,确实会引发 Changed 事件。但是,当他们移动文件时Changed,事件也会引发,这会干扰我对Created和已删除事件的处理。
所以基本上,我只想在用户将编辑保存到文件时引发该Changed事件,而不是在用户移动或创建文件时引发该事件。我尝试使用该ChangeType属性来检查它实际上是一个Changed事件还是一个Created事件,但令我惊讶的是,ChangeType Changed即使在移动或创建文件时,也会为 Change 事件引发,而不是ChangeType Created(应该是其中一种类型) 。
所以我不知道如何检查更改事件实际上是由文件编辑触发的,而不是文件创建或移动...
有任何想法吗?
当您应用某些过滤器NotificationFilter(例如NotifyFilter. Attributes和 )时NotifyFilter.LastAccess,这是正常行为,如果在文件移动“删除 - 创建 - 更改 - 更改”时应用了两个过滤器,它甚至会通知Changed两次,因此:
NotifyFilter. Attributes并且移动文件时NotifyFilter.LastAccess
不会收到事件,则只能。ChangedDeletedCreatedDeleted,Created然后Changed,它们将始终按此顺序..