我有一个使用FileSystemWatcher作为Windows服务运行的简单应用程序。文件通过excel VB Macro with
保存到目录中ActiveWorkbook.SaveAs Filename:= "pathToSaveTo"
在创建新文件时,观察者调用一个方法来处理文件
void watcher_FileCreated(object sender, FileSystemEventArgs e)
{
while (true)
{
if (FileUploadComplete(e.FullPath))
{
this.ProcessOneFile(e.FullPath, e.Name);
break;
}
}
}
当发生这种情况时,观察者应用程序从不注册事件,但手动删除并重新添加文件到文件夹会导致事件被引发。
当文件保存到目录中时,是否有人知道如何获得预期的行为?
答案 0 :(得分:6)
只是在黑暗中拍摄,也许“SaveAs”的实现正在做一些奇怪的事情,比如将数据写入临时文件,然后将其“移动”到最终目录中,最终目录可能会像'重命名'或'改变了'事件而不是。
如果您还没有这样做,请尝试注册这些其他事件,看看他们是否会在'SaveAs'上开火?
答案 1 :(得分:0)
如果文件已存在且正在被覆盖,则不会获得Created事件。尝试连接Changed事件。