码:
FileSystemWatcher fileSystemWatcher = new FileSystemWatcher(path, "*.exe");
fileSystemWatcher.IncludeSubdirectories = true;
fileSystemWatcher.Created += new FileSystemEventHandler(fileSystemWatcher_Created);
fileSystemWatcher.Deleted += new FileSystemEventHandler(fileSystemWatcher_Deleted);
fileSystemWatcher.EnableRaisingEvents = true;
Run Code Online (Sandbox Code Playgroud)
创建事件工作正常,但删除事件仅在使用SHIFT删除目录/或Exe时触发.但正常删除(移动到回收站)不起作用/触发事件!
如何解决问题?
这是预期的行为,因为文件实际上没有被删除:它被移动了.
尝试附加到
filesystemWatcher.Renamed
Run Code Online (Sandbox Code Playgroud)
并检查文件是否转移到回收站.
请注意,查找回收站实际位于文件系统中的位置并非易事.其他人发布的一些代码(未经验证)在这里:http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/5d2be9aa-411c-4fd1-80f5-895f64aa672a/ - 而且这里:怎么能我告诉一个目录是C#中的回收站?