我有一些代码监视文件系统的变化并更新文件表示的容器。所有作品的大部分,直到你重命名一个目录。我希望为重命名目录的所有文件和子文件夹获取重命名事件,因为它们有新路径,但是我只收到一条消息,说明父目录已更改名称。有没有我忘记的事件,或需要设置的旗帜?目前,我正在处理目录重命名并遍历我的集合以将文件更新为新名称,但是我觉得应该有一些东西来接收每个文件的通知。为什么我没有注意到文件从FileSystemWatcher重命名
我的设置:
FileSystemWatcher watcher = new FileSystemWatcher(item.Path);
watcher.EnableRaisingEvents = true;
watcher.Created += new System.IO.FileSystemEventHandler(OnMediaCreated);
watcher.Deleted += new System.IO.FileSystemEventHandler(OnMediaDeleted);
watcher.Changed += new System.IO.FileSystemEventHandler(OnMediaChanged);
watcher.Renamed += new System.IO.RenamedEventHandler(OnMediaRenamed);
我喜欢你的想法,但在我的结构中,导演没有代表。只显示文件。这是一个列表框,所以我在文件路径的一部分上进行了一些分组,以按目录列出内容。这工作正常。然后,如果用户重命名目录,我的文件不再更新,因为它们仍旧绑定到旧路径(因为它们没有得到重命名事件)。我想我将不得不继续手动完成这些项目并自己强制更新。 – steveg89 2012-07-26 11:26:25