/// <summary>
/// 将IFeatureClass拷贝到ipFeaWs中
/// </summary>
/// <param name="pDs">要创建的源图层</param>
/// <param name="ipFeaWs">待拷贝库的工作空间</param>
/// <returns>如果不能创建,则返回false</returns>
public static bool CreateFtCls(IDataset pDs, IFeatureWorkspace ipFeaWs)
{
IFeatureClass pFtCls = (IFeatureClass)pDs;
IFeatureClass _featureClass = null;
IWorkspace2 pWs = (IWorkspace2) ipFeaWs;
if (!pWs.get_NameExists(esriDatasetType.esriDTFeatureClass, pDs.Name))
{
_featureClass = ipFeaWs.CreateFeatureClass(pDs.Name, pFtCls.Fields, pFtCls.CLSID,
pFtCls.EXTCLSID, pFtCls.FeatureType,
pFtCls.ShapeFieldName, "");
//更新图层别名
IClassSchemaEdit ipEdit = (IClassSchemaEdit)_featureClass;
ipEdit.AlterAliasName(pFtCls.AliasName);
IFeatureCursor _featureCursor = pFtCls.Search(null, false);
IFeature _feature = _featureCursor.NextFeature();
while (_feature != null)
{
IFeature _featureNew = _featureClass.CreateFeature();
for (int k = 0; k < _featureClass.Fields.FieldCount; k++)
{
ESRI.ArcGIS.Geodatabase.IField _field = _featureNew.Fields.get_Field(k);
if (_field.Editable == true)
{
_featureNew.set_Value(k, _feature.get_Value(k));
}
Marshal.ReleaseComObject(_field);
}
_featureNew.Store();
_feature = _featureCursor.NextFeature();
}
}
else
{
XtraMessageBox.Show("同名的" + pDs.Name + "已存在,无法导入!", "提示");
return false;
}
return true;