我编写了一个实用程序来确定何时更新Excel文件。更新完成后,我必须读取相同的Excel文件。但是我没有收到有关更新的通知,而是通知了一个临时文件的创建(这对我没有用)。如何在C#Windows窗体中执行此操作?

这是使用的代码片段:

                  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);
            }


我有什么想念的吗?

最佳答案

这是设计使然,这是许多程序的常用方法。修改文件时,他们会尝试确保这些修改由于任何原因而失败时不会破坏原始文件。因此,他们将原始文件复制到一个临时名称,然后对该临时文件进行更改。当一切正常时,重命名原始文件,重命名临时文件,使其与原始文件名相同,最后删除重命名的原始文件。

因此,您也需要对重命名事件感兴趣。

10-05 21:26