1、需求:在代码中调用acDocManager->closeDocument(pDoc)后,要求调用::DeleteFile()删除刚才关闭的文档。
2、问题:如果直接调用::DeleteFile(),会由于文件被占用而失败。这是由于虽然调用了closeDocument(pDoc),但是pDoc对象尚未析构,文件句柄尚未关闭(猜的)造成的。
3、解决方案:利用AcApDocManager类的反应器——AcApDocManagerReactor::documentDestroyed(const char* filename);方法来实现删除。该方法是文档被完全销毁并且与文档关联的数据库也被删除时调用。
4、实现: