//获取要素工作空间
 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);
        }
Esempio n. 3
0
 /// <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);
     }
 }
Esempio n. 4
0
        //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;

        }
Esempio n. 5
0
        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);
        }