您似乎在将FileSystemWatcher创建为安装方法中的局部变量。在方法结束时,这将超出范围,并且很可能在此时被清理,从而移除手表。
尝试创建FSW在一个点,它将被持久化(如一个程序级变量)。
例如,将文件(单击并拖动)从桌面移动到监视位置并不会引发事件,而是复制现有文件并粘贴该文件的新副本(通过在文件系统中创建新文件而不是简单地移动现有文件)将触发Changed
事件。
watcher.NotifyFilter = NotifyFilters.Attributes |
NotifyFilters.CreationTime |
NotifyFilters.FileName |
NotifyFilters.LastAccess |
NotifyFilters.LastWrite |
NotifyFilters.Size |
NotifyFilters.Security;