Tag: filesystemwatcher

LastWrite FileSystemWatcher中的NotifyFilter

我已经编写了一个实用程序来确定何时更新Excel文件。 一旦更新完成,我必须读取相同的Excel文件。 但是,我没有通知更新,而是通知临时文件创build(这对我来说是没有用的)。 我怎样才能在C#窗体中做到这一点? 这是使用的代码片段: watcher.EnableRaisingEvents = true; watcher.Filter = "*.xlsx"; watcher.NotifyFilter = NotifyFilters.LastWrite; watcher.Path = "G:\\Prerequisites Folder"; watcher.SynchronizingObject = this; watcher.Changed += new FileSystemEventHandler(watcher_Changed); void watcher_Changed(object sender, FileSystemEventArgs e) { if (e.Name.StartsWith("~") == false) btnRefreshPrequisites_Click(null, null); } 任何我缺less的东西?

当Excel 2007以兼容模式打开XLS文件时,FileSystemWatcher.Changed立即触发

我们使用FileSystemWatcher监视从文档pipe理系统打开的文档,如果用户保存文档,我们会问他们是否也希望在我们的系统中更新文档。 Excel 2007中的XLS文件存在问题(未validation问题在2003年不存在,但似乎只是在2007年以兼容模式打开的文件),其中Changed事件在打开文件时立即触发,然后再closures文件,即使没有改变或用户select不保存closures。 打开XLSX文件时不存在相同的行为。 我写了一个testing应用程序来validation行为,你可以在http://www.just2guys.net/SOFiles/FSWExcel.zipfind。 在应用程序中,每个NotifyFiltertypes都有一个FileSystemWatcher,所以很明显为什么 Changed事件被触发。 你能想到的任何方式只提示用户当文件实际上被保存在用户的某种方式? 我可以在Process.Start被调用之后开始监视文件,这允许我在打开文档时跳过消息,但即使在没有任何更改的情况下,我仍然可以在closures文档时看到该文件。