public IWorkspace OpenLoaclGeoDataBase(string path, EnumLoaclGeoDatabaseType type) { try { IWorkspaceFactory pTargetWsf = null; switch (type) { case EnumLoaclGeoDatabaseType.MDB: pTargetWsf = new AccessWorkspaceFactory(); break; case EnumLoaclGeoDatabaseType.GDB: pTargetWsf = new FileGDBWorkspaceFactory(); break; case EnumLoaclGeoDatabaseType.SHP: pTargetWsf = new ShapefileWorkspaceFactory(); break; } return(pTargetWsf.OpenFromFile(path, 0)); } catch (Exception ex) { ErrorMessage = ex.Message; return(null); } }
public IWorkspace CreateOrOpenLoaclGeoDataBase(string path, EnumLoaclGeoDatabaseType type) { try { IWorkspaceFactory pTargetWsf = null; switch (type) { case EnumLoaclGeoDatabaseType.MDB: pTargetWsf = new AccessWorkspaceFactory(); break; case EnumLoaclGeoDatabaseType.GDB: pTargetWsf = new FileGDBWorkspaceFactory(); break; case EnumLoaclGeoDatabaseType.SHP: pTargetWsf = new ShapefileWorkspaceFactory(); break; } if (System.IO.Directory.Exists(path) || System.IO.File.Exists(path)) { if (pTargetWsf.IsWorkspace(path)) { return(pTargetWsf.OpenFromFile(path, 0)); } else { ErrorMessage = "当前工作空间已经损坏"; return(null); } } else { string sPath = System.IO.Path.GetDirectoryName(path); string sName = System.IO.Path.GetFileNameWithoutExtension(path); IWorkspaceName pWorkspaceName = pTargetWsf.Create(sPath, sName, null, 0); return(pTargetWsf.Open(pWorkspaceName.ConnectionProperties, 0)); } } catch (Exception ex) { ErrorMessage = ex.Message; return(null); } }