//获取要素工作空间 public static ESRI.ArcGIS.Geodatabase.IFeatureWorkspace GetAeWorkspace(string mdbFile) { ESRI.ArcGIS.Geodatabase.IFeatureWorkspace featureWorkspace; ESRI.ArcGIS.Geodatabase.IWorkspaceFactory workspaceFactory = new ESRI.ArcGIS.DataSourcesGDB.AccessWorkspaceFactoryClass(); featureWorkspace = workspaceFactory.OpenFromFile(mdbFile, 0) as ESRI.ArcGIS.Geodatabase.IFeatureWorkspace; //featureClass = featureWorkspace.OpenFeatureClass(featureName); //ReleaseAE.ReleaseAEObject(featureWorkspace); System.Runtime.InteropServices.Marshal.ReleaseComObject(workspaceFactory); return(featureWorkspace); }
/// <summary> /// 创建要素工作空间 /// </summary> /// <param name="MDBPath"></param> /// <returns></returns> public static ESRI.ArcGIS.Geodatabase.IFeatureWorkspace CreateAeWorkspace(string MDBPath) { ESRI.ArcGIS.DataSourcesGDB.AccessWorkspaceFactoryClass pwsf = new ESRI.ArcGIS.DataSourcesGDB.AccessWorkspaceFactoryClass(); string mdbparentPath = System.IO.Path.GetDirectoryName(MDBPath); string mdbName = System.IO.Path.GetFileNameWithoutExtension(MDBPath); pwsf.Create(mdbparentPath, mdbName, null, 0); ESRI.ArcGIS.Geodatabase.IWorkspace targetWorkspace = pwsf.OpenFromFile(MDBPath, 0); System.Runtime.InteropServices.Marshal.ReleaseComObject(pwsf); return(targetWorkspace as ESRI.ArcGIS.Geodatabase.IFeatureWorkspace); }
/// <summary> /// 打开personal geodatabase工作空间 /// </summary> /// <param name="database">mdb文件所在的路径</param> /// <returns></returns> public static IWorkspace OpenPGDBWorkspace(string database) { try { ESRI.ArcGIS.esriSystem.IPropertySet propertySet = new ESRI.ArcGIS.esriSystem.PropertySetClass(); propertySet.SetProperty("DATABASE", database); IWorkspaceFactory workspaceFactory = new ESRI.ArcGIS.DataSourcesGDB.AccessWorkspaceFactoryClass(); return(workspaceFactory.Open(propertySet, 0)); } catch (Exception ex) { LOG.Error("空间数据库打开错误,详情:" + ex.Message); // Console.WriteLine("空间数据库打开错误"); return(null); } }
//added by chulili //函数功能:创建PDB工作空间 传入参数:工作空间所在文件夹路径 工作空间名称 传出参数:工作空间 //代码来源:借鉴同事代码 public static IWorkspace CreatePDBWorkSpace(string path,string filename) { IWorkspaceFactory pWorkspaceFactory = new ESRI.ArcGIS.DataSourcesGDB.AccessWorkspaceFactoryClass(); if (System.IO.File.Exists(filename)) { if (pWorkspaceFactory.IsWorkspace(filename)) { IWorkspace pTempWks = pWorkspaceFactory.OpenFromFile(filename, 0); pWorkspaceFactory = null; return pTempWks; } } IWorkspaceName pWorkspaceName = pWorkspaceFactory.Create("" + path + "", "" + filename + "", null, 0); IName name = (ESRI.ArcGIS.esriSystem.IName)pWorkspaceName; IWorkspace PDB_workspace = (IWorkspace)name.Open(); pWorkspaceFactory = null; return PDB_workspace; }
public IWorkspace CreateFileGDBWorkSpace(string filename) { IWorkspaceFactory pWorkspaceFactory = new ESRI.ArcGIS.DataSourcesGDB.AccessWorkspaceFactoryClass(); if (System.IO.File.Exists(filename)) { if (pWorkspaceFactory.IsWorkspace(filename)) { IWorkspace pTempWks = pWorkspaceFactory.OpenFromFile(filename, 0); return(pTempWks); } } IWorkspaceName pWorkspaceName = pWorkspaceFactory.Create("" + System.IO.Path.GetDirectoryName(filename) + "", "" + System.IO.Path.GetFileNameWithoutExtension(filename) + "", null, 0); IName name = (ESRI.ArcGIS.esriSystem.IName)pWorkspaceName; IWorkspace fileGDB_workspace = (IWorkspace)name.Open(); return(fileGDB_workspace); }