判断GDB里是否存在要素类


///


/// 判断GDB里是否存在要素类
///

/// GDB路径
/// 要素类名称
/// 存在返回true,否则返回false
public static bool ExistFeatureClass(string gdbPath, string featureClassName)
{
if (!Directory.Exists(gdbPath))
{
return false;
}
FileGDBWorkspaceFactory fac = new FileGDBWorkspaceFactory();
IWorkspace pWorkspace = fac.OpenFromFile(gdbPath, 0);
IFeatureWorkspace pFeatureWorkspace = (IFeatureWorkspace)pWorkspace;

IFeatureDataset pFeatureDataSet = pFeatureWorkspace.OpenFeatureDataset("Data");
IFeatureClassContainer pFeatureclassContainer = (IFeatureClassContainer)pFeatureDataSet;
IEnumFeatureClass pEnumFeatureClass = (IEnumFeatureClass)pFeatureclassContainer.Classes;
IFeatureClass pFeatureClass = (IFeatureClass)pEnumFeatureClass.Next();
while (pFeatureClass != null)//在每一个数据集中遍历数据层IFeatureClass
{
if (pFeatureClass.AliasName.Equals(featureClassName))
{
return true;
}
pFeatureClass = (IFeatureClass)pEnumFeatureClass.Next();
}
return false;
}
///


/// 判断GDB里是否存在要素类
///

/// 要素类完整路径
/// 存在返回true,否则返回false
public static bool ExistFeatureClass(string featureClassPath)
{
string gdbPath = featureClassPath.Substring(0, featureClassPath.LastIndexOf(@"\"));
string featureClassName = featureClassPath.Substring(featureClassPath.LastIndexOf(@"\") + 1);
if (!Directory.Exists(gdbPath))
{
return false;
}

FileGDBWorkspaceFactory fac = new FileGDBWorkspaceFactory();
IWorkspace pWorkspace = fac.OpenFromFile(gdbPath, 0);
IFeatureWorkspace pFeatureWorkspace = (IFeatureWorkspace)pWorkspace;
IFeatureDataset pFeatureDataSet = pFeatureWorkspace.OpenFeatureDataset("Data");
IFeatureClassContainer pFeatureclassContainer = (IFeatureClassContainer)pFeatureDataSet;
IEnumFeatureClass pEnumFeatureClass = (IEnumFeatureClass)pFeatureclassContainer.Classes;
IFeatureClass pFeatureClass = (IFeatureClass)pEnumFeatureClass.Next();
while (pFeatureClass != null)//在每一个数据集中遍历数据层IFeatureClass
{
if (pFeatureClass.AliasName.Equals(featureClassName))
{
return true;
}
pFeatureClass = (IFeatureClass)pEnumFeatureClass.Next();
}
return false;
}