FileSystemWatcher无法识别Excel SaveAs

fri*_*edX 3 c# windows-services filesystemwatcher

我有一个使用FileSystemWatcher作为Windows服务运行的简单应用程序.文件通过excel VB Macro保存到目录中

ActiveWorkbook.SaveAs Filename:= "pathToSaveTo"
Run Code Online (Sandbox Code Playgroud)

在创建新文件时,观察者调用一个方法来处理该文件

void watcher_FileCreated(object sender, FileSystemEventArgs e)
    {
        while (true)
        {
            if (FileUploadComplete(e.FullPath))
            {
                this.ProcessOneFile(e.FullPath, e.Name);
                break;
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

当发生这种情况时,观察者应用程序从不注册事件,但手动删除并重新添加文件到文件夹会导致事件被引发.

当文件保存到目录时,有人知道如何获得预期的行为吗?

小智 6

只是在黑暗中拍摄,也许"SaveAs"的实现正在做一些奇怪的事情,比如将数据写入临时文件,然后将其"移动"到最终目录中,这可能会作为"重命名"或"更改"事件触发代替.

如果您还没有这样做,请尝试注册这些其他事件,看看他们是否可以点击'SaveAs'?