Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# FileSystemWatcher中的LastWrite NotifyFilter_C#_Excel_Filesystemwatcher - Fatal编程技术网

C# FileSystemWatcher中的LastWrite NotifyFilter

C# FileSystemWatcher中的LastWrite NotifyFilter,c#,excel,filesystemwatcher,C#,Excel,Filesystemwatcher,我编写了一个实用程序来计算Excel文件何时更新。更新完成后,我必须读取相同的Excel文件。但是,我没有收到有关更新的通知,而是收到了临时文件创建的通知(这对我没有用处)。如何在C#Windows窗体中执行此操作 下面是使用的代码片段: watcher.EnableRaisingEvents = true; watcher.Filter = "*.xlsx"; watcher.Notif

我编写了一个实用程序来计算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);
            }

我遗漏了什么?

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

void watcher_Changed(object sender, FileSystemEventArgs e)
       {
        //no need to check if (e.Name.StartsWith("~") == false)
         // comment the if statement
        if (e.Name.StartsWith("~") == false)
              btnRefreshPrequisites_Click(null, null);

         //do your work
        }
因此,您还需要对重命名的事件感兴趣