判断GDB里是否存在要素类
///
/// 判断GDB里是否存在要素类
///
/// GDB路径
/// 要素类名称
///
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里是否存在要素类
///
/// 要素类完整路径
///
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;
}