zoukankan      html  css  js  c++  java
  • c# AE 通过名称删除要素类

    转载:http://blog.csdn.net/lysc_forever/article/details/7790219#

     1 //注: 在程序运行中往往有些要素类因为出错而无法删除,这时IDataset.Delete这个方法则无法成功,可以用轻量级的名称对象来完成这个任务。以下为C#+AE10源码。
     2 
     3 //删除要素类
     4         public static bool DeleteFeatureDataset(IWorkspace ws, string name)
     5         {
     6             if (ws == null || string.IsNullOrEmpty(name))
     7             {
     8                 ErrMsg = "工作空间或要素类名称不能为空!";
     9                 return false;
    10             }
    11             IFeatureDataset pFeaDataSet;
    12             IEnumDatasetName pEnumDatasetName;
    13             IFeatureWorkspace pFeaWorkspace;
    14             IDatasetName pDatasetName;
    15             try
    16             {
    17                 pFeaWorkspace = ws as IFeatureWorkspace;
    18                 pEnumDatasetName = ws.get_DatasetNames(esriDatasetType.esriDTFeatureClass ^ esriDatasetType.esriDTFeatureDataset);
    19                 pEnumDatasetName.Reset();
    20                 pDatasetName = pEnumDatasetName.Next();
    21                 while (pDatasetName != null)
    22                 {
    23                     if (pDatasetName.Type == esriDatasetType.esriDTFeatureDataset)
    24                     {
    25                         //如果是要素集,则对要素集内的要素类进行查找
    26                         IEnumDatasetName pEnumFcName = (pDatasetName as IFeatureDatasetName).FeatureClassNames;
    27                         IDatasetName pFcName = pEnumFcName.Next();
    28                         while (pFcName != null)
    29                         {
    30                             if (pFcName.Name.IndexOf(name) >= 0)
    31                             {
    32                                 DeleteByName(pFeaWorkspace, pFcName);
    33                                 return true;
    34                             }
    35                             pFcName = pEnumFcName.Next();
    36                         }
    37                     }
    38                     else
    39                     {
    40                         if (pDatasetName.Name.IndexOf(name) >= 0)
    41                         {
    42                             DeleteByName(pFeaWorkspace, pDatasetName);
    43                             return true;
    44                         }
    45                     }
    46                     pDatasetName = pEnumDatasetName.Next();
    47                 }
    48                 return false;
    49             }
    50             catch (Exception ex)
    51             {
    52                 ErrMsg = ex.Message;
    53                 return false;
    54             }
    55         }
    56         //删除名称对象
    57         public static void DeleteByName(IFeatureWorkspace pFeaWorkspace, IDatasetName pDatasetName)
    58         {
    59             IFeatureWorkspaceManage pWorkspaceManager = pFeaWorkspace as IFeatureWorkspaceManage;
    60             pWorkspaceManager.DeleteByName(pDatasetName);
    61         }

  • 相关阅读:
    Pandas中dataframe以及spark中rdd使用groupByKey进行合并
    Apriori算法Python实现
    安装Cloudera CDH
    HDFS常用命令
    vuex modules 命名空间
    sessionStore使用
    indexof使用
    vue 简单购物车实现
    etCapture() 和 ReleaseCapture()的用法
    js组合继承与寄生继承
  • 原文地址:https://www.cnblogs.com/marvelousone/p/7464160.html
Copyright © 2011-2022 走看看