Arcengine获取工作空间下所有要素类

 

 

        /// <summary>
        /// 获取工作空间的要素类
        /// </summary>
        /// <param name="workspace"></param>
        /// <param name="workspaceType"></param>
        /// <returns></returns>
        public List<string> GetFeatureClassByWorkspace(IWorkspace workspace)
        {
            List<string> listFeaClass = new List<string>();
            try
            {
                //遍历工作空间下的featureclass
                IFeatureWorkspace pFeatureWorkspace = workspace as IFeatureWorkspace;
                IEnumDataset pEnumDatasets = workspace.get_Datasets(esriDatasetType.esriDTAny) as IEnumDataset;
                IDataset pDataset = pEnumDatasets.Next();
                while (pDataset != null)
                {
                    if (pDataset.Type == esriDatasetType.esriDTFeatureClass)
                    {
                        //string aliasName = pFeatureWorkspace.OpenFeatureClass(pDataset.Name).AliasName;
                        listFeaClass.Add(pDataset.Name);
                    }
                    else if (pDataset.Type == esriDatasetType.esriDTFeatureDataset)
                    {
                        IEnumDataset pESubDataset = pDataset.Subsets;
                        IDataset pSubDataset = pESubDataset.Next();
                        while (pSubDataset != null)
                        {
                            listFeaClass.Add(pSubDataset.Name);

                            pSubDataset = pESubDataset.Next();
                        }
                    }

                    pDataset = pEnumDatasets.Next();
                }
            }
            catch (Exception ex)
            {
                return null;
            }

            return listFeaClass;
        }

 

posted @ 2019-09-26 16:46  ParanoiaApe  阅读(918)  评论(0编辑  收藏  举报