public static IWorkspace OpenSDCWorkSpace(string filePath) { IWorkspaceFactory workspaceFactory = null; IWorkspace pWorkspace = null; try { workspaceFactory = null; workspaceFactory = new SDCWorkspaceFactoryClass(); pWorkspace = workspaceFactory.OpenFromFile(filePath, 0); return(pWorkspace); } catch (Exception ex) { LOG.Error(ex); } return(pWorkspace); }
/// <summary> /// 获取初始化后的各种工作空间 /// </summary> /// <param name="sSourceFile"></param> /// <param name="pSourceType"></param> /// <returns></returns> public IFeatureWorkspace GetFeatureWorkspace(string sSourceFile, WorkspaceSource pSourceType) { try { if ((string.IsNullOrEmpty(sSourceFile) | !File.Exists(sSourceFile)) & (string.IsNullOrEmpty(sSourceFile) | !Directory.Exists(sSourceFile))) { MessageBox.Show("数据文件 " + sSourceFile + " 丢失。", "打开工作空间错误", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return(null); } IWorkspaceFactory factory = null; WorkspaceSource source = pSourceType; if (source <= WorkspaceSource.esriWSStreetMapWorkspaceFactory) { if (source < WorkspaceSource.esriWSAccessWorkspaceFactory) { goto Label_010D;//当source<1.返回空 } switch (((int)(source - 1L))) { case 0: factory = new AccessWorkspaceFactoryClass(); goto Label_0111; case 1: case 4: case 5: case 7: case 8: case 10: goto Label_010D; case 2: factory = new ArcInfoWorkspaceFactoryClass(); goto Label_0111; case 3: factory = new CadWorkspaceFactoryClass(); goto Label_0111; case 6: factory = new PCCoverageWorkspaceFactoryClass(); goto Label_0111; case 9: factory = new SDCWorkspaceFactoryClass(); goto Label_0111; case 11: factory = new ShapefileWorkspaceFactoryClass(); goto Label_0111; case 12: factory = new StreetMapWorkspaceFactoryClass() as IWorkspaceFactory; goto Label_0111; } } if ((source <= WorkspaceSource.esriWSFileGDBWorkspaceFactory) && (source >= WorkspaceSource.esriWSVpfWorkspaceFactory)) { switch (((int)(source - 0x11L))) { case 0: factory = new VpfWorkspaceFactoryClass(); goto Label_0111; case 1: factory = new FileGDBWorkspaceFactoryClass(); goto Label_0111; } } Label_010D: return(null);//返回空 Label_0111: if (!factory.IsWorkspace(sSourceFile)) { return(null); } return(factory.OpenFromFile(sSourceFile, 0) as IFeatureWorkspace); } catch (Exception exception) { this.mErrOpt.ErrorOperate(this.mSubSysName, "FunFactory.WorkspaceFun", "GetFeatureWorkspace", exception.GetHashCode().ToString(), exception.Source, exception.Message, "", "", ""); return(null); } }