List lists = new ArrayList();
IWorkspaceFactory factory = new ShapefileWorkspaceFactoryClass();
IWorkspace pworkspace = factory.OpenFromFile(xmlOutDir, 0);
IEnumDatasetName datasetName = pworkspace.getDatasetNames(esriDatasetType.esriDTFeatureClass); //筛选出shp
IDatasetName shpdatasetName = datasetName.Next(); //获取的数据集名称无后缀名
while (shpdatasetName != null)
{
lists.add(shpdatasetName.getName());
shpdatasetName = datasetName.Next();
}
tips:
- getDatasetNames(int datasetType);同理getDatasets(int datasetType);
- 主要用到esriDatasetType.esriDTFeatureClass//筛选文件类型
附上佳作:
http://blog.csdn.net/yaoxiaochuang/article/details/47720325
拓展:
Feature classes
存储了简单的要素,他可以在featureDataset内也可以在dataet外,在外面的featureclass被称作独立的
featureclass。存储了拓扑关系的featureclass必须包含在dataset中以确保他们是统一的空间索引(spatial
reference)。
一个
FeatureDataset是一个仅存在于geodatabase工作空间的dataset。他的所有dataset都是geodatabase的一部分.当编程时记得featureclass可能是或不是一个featuredataset的一部分。
一个geodatabase的每一个dataset都必须有独一无二的名字
。特别是在一个geodatabase中,每个featureclass也必须有一个独一无二的名字,无论它存在于那个dataset。这不同于文件系统,两个文件夹可以有同一个名字的文件。
一个workspace的IFeatureWorkspace
接口的OpenFeatureClass方法
能够打开这个works脾气所有的featureclass。包括独立的featureclass和存储在featuredataset中featureclass。
另外一个 FeatureDataset
存储的featureclass都是同一个空间索引。