【解决方案】WorkSpace有两种方法保存工作空间:
1、一个save,用于保存已经存在的工作空间,不改变原有的名称,即本身存在*.smwu或者*.sxwu。
需要注意以下两点,否则会存在保存失败的情况:
(1)、在调用save之前需要设置pWorkspack->m_WorkspaceConnection.bFailIfExists = false;
(2)、UGWorkSpace打开工作空间的时候,不能采用直接UGWorkSpace->Open(smwu的文件路径)。需要创建UGWorkspaceConnection ,然后设置对应的参数的形式去打开工作空间,否则也会导致失败,UGWorkspaceConnection 的参数设置可以参考以下第2条。
2、另外一个是SaveAs,另存工作空间,即需要重新生成一个*.smwu或者*.sxwu。SaveAs方法中需要填参数:UGWorkspaceConnection,参数必须设置完整,下面是文件型工作空间其中必填的属性参数: UGWorkspaceConnection wscon; wscon.m_strServer = _U("C:/ceshi.smwu"); wscon.m_nWorkspaceType = UGWorkspace::UGWorkspaceType::WS_Version_SMWU; wscon.m_nVersion = m_pWorkSpace->GetVersion(); UGbool bSuc = m_pWorkSpace->SaveAs(wscon);