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

ActiveWorkbook.SaveAs Filename:= "pathToSaveTo"


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

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


监视程序应用程序永远不会在发生这种情况时注册事件,但是手动删除文件并将其重新添加到文件夹会导致引发该事件。

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

最佳答案

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

如果您还没有这样做,请尝试注册其他事件,看看它们是否在“ SaveAs”上触发?

10-05 21:36