从FileGDB导出shp

//Create inworkspace name.
            ESRI.ArcGIS.esriSystem.IPropertySet propertySet = new ESRI.ArcGIS.esriSystem.PropertySetClass();
            propertySet.SetProperty("DATABASE",@"J:/work/xingshan.gdb");
            IWorkspaceFactory workspaceFactory = new ESRI.ArcGIS.DataSourcesGDB.FileGDBWorkspaceFactoryClass();
            IWorkspace wSpace=workspaceFactory.Open(propertySet,0);
            IDataset inWorkspaceDataset = (IDataset)wSpace;
            IWorkspaceName inWorkspaceName = (IWorkspaceName)inWorkspaceDataset.FullName;

            // Set in dataset and feature class names.
            IFeatureClassName inFeatureClassName = new FeatureClassNameClass();
            IDatasetName inDatasetName = (IDatasetName)inFeatureClassName;
            inDatasetName.WorkspaceName = inWorkspaceName;
            inDatasetName.Name = "高切坡";

            //Create outworkspace name.
            IWorkspaceFactory2 workspaceFactory2;
            workspaceFactory2 = (IWorkspaceFactory2)new ESRI.ArcGIS.DataSourcesFile.ShapefileWorkspaceFactoryClass();
            IWorkspaceName worName = workspaceFactory2.Create("j://","targetDirectory",null,0);           //j:/targetDirectory为生成shp的目标文件夹,写成workspaceFactory2.Create(",""j://targetDirectory",null,0);貌似也可以
            ESRI.ArcGIS.esriSystem.IName name = (ESRI.ArcGIS.esriSystem.IName)worName;
            IWorkspace wSpace2 = (IWorkspace)name.Open();            
            IDataset outWorkspaceDataset = (IDataset)wSpace2;
            IWorkspaceName outWorkspaceName = (IWorkspaceName)outWorkspaceDataset.FullName;

            // Set out dataset and feature class names.
            IFeatureClassName outFeatureClassName = new FeatureClassNameClass();
            IDatasetName outDatasetName = (IDatasetName)outFeatureClassName;
            outDatasetName.WorkspaceName = outWorkspaceName;
            outDatasetName.Name = "ctgFeatureshp_out.shp";

            //Open input Featureclass to get field definitions.
            IName inName = (IName)inFeatureClassName;
            IFeatureClass inFeatureClass = (IFeatureClass)inName.Open();

            //Validate the field names.
            IFieldChecker fieldChecker = new FieldCheckerClass();
            IFields outFeatureClassFields;
            IFields inFeatureClassFields = inFeatureClass.Fields;
            IEnumFieldError enumFieldError;
            fieldChecker.InputWorkspace = wSpace;
            fieldChecker.ValidateWorkspace = wSpace2;

            // Validate the fields.
            fieldChecker.Validate(inFeatureClassFields,out enumFieldError,out outFeatureClassFields);

            // Set up the geometry definition.
            IField geometryField;
            geometryField = outFeatureClassFields.get_Field(outFeatureClassFields.FindField(inFeatureClass.ShapeFieldName));
            // Get the geometry field's geometry definition.
            IGeometryDef geometryDef = geometryField.GeometryDef;

            //Set up the IQueryFilter to convert all the features by leaving a blank WhereClause
            QueryFilter qf = new QueryFilterClass();
            qf.WhereClause = "";

            //Load the feature class
            IFeatureDataConverter fctofc = new FeatureDataConverterClass();
            IEnumInvalidObject enumErrors = fctofc.ConvertFeatureClass(inFeatureClassName,qf,null,outFeatureClassName,geometryDef,outFeatureClassFields,"",1000,0);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值