You can use IFeatureDataConverter to save a featureclass to a shapefile. Here is a quick example:Public Sub GetFeatureClassAndWorkspace()
Dim pOutSDEPropset As IPropertySet
Set pOutSDEPropset = New PropertySet
With pOutSDEPropset
.SetProperty "Server", "shakedown"
.SetProperty "Instance", "5151"
.SetProperty "user", "sde"
.SetProperty "password", "sde"
.SetProperty "version", "SDE.DEFAULT"
End With
' +++ Create a new feature datset name object for the output SDE feature dataset, call
' +++ it "USA"
Dim pSDEworkspacefactory As IWorkspaceFactory
Set pSDEworkspacefactory = New SdeWorkspaceFactory
Dim pWorkspace As IWorkspace
Set pWorkspace = pSDEworkspacefactory.Open(pOutSDEPropset, 0)
Dim pSFworkspacefactory As IWorkspaceFactory
Set pSFworkspacefactory = New ShapefileWorkspaceFactory
Dim pShapeWorkspace As IWorkspace
Set pShapeWorkspace = pSFworkspacefactory.OpenFromFile("C:\test_data\shapefiles", 0)
Dim pFeatWork As IFeatureWorkspace
Set pFeatWork = pShapeWorkspace
Dim pFeatureClass As IFeatureClass
Dim pFeatWs As IFeatureWorkspace
Set pFeatWs = pWorkspace
Set pFeatureClass = pFeatWs.OpenFeatureClass("States")
ConvertFeatureClass pFeatureClass, pFeatWork
End Sub
Public Sub ConvertFeatureClass(pFeatureClass As IFeatureClass, _
pOutWorkspace As IWorkspace)
'Purpose: Converts a featureclass to a new feature class in a given workspace.
'Get input FeatureClassName and workspace
Dim pInFCName As IFeatureClassName
Dim pDataset As IDataset
Set pDataset = pFeatureClass
Set pInFCName = pDataset.FullName
Dim pInWorkspace As IWorkspace
Set pInWorkspace = pDataset.Workspace
'Set output workspacename
Set pDataset = pOutWorkspace
Dim pOutWorkspaceName As IWorkspaceName
Set pOutWorkspaceName = pDataset.FullName
'Set output FeatureClassName
Dim pOutFCName As IFeatureClassName
Set pOutFCName = New FeatureClassName
Dim pDatasetName As IDatasetName
Set pDatasetName = pOutFCName
pDatasetName.Name = "States_SHP.shp"
Set pDatasetName.WorkspaceName = pOutWorkspaceName
'Get fields for input feature class and run them through field checker
Dim pFieldChecker As IFieldChecker
Dim pFields As IFields
Set pFields = pFeatureClass.Fields
Dim pOutFields As IFields
Set pFieldChecker = New FieldChecker
pFieldChecker.InputWorkspace = pInWorkspace
Set pFieldChecker.ValidateWorkspace = pOutWorkspace
pFieldChecker.Validate pFields, Nothing, pOutFields
'Convert the data
Dim pFeatureDataConverter As IFeatureDataConverter
Set pFeatureDataConverter = New FeatureDataConverter
pFeatureDataConverter.ConvertFeatureClass pInFCName, Nothing, _
Nothing, pOutFCName, Nothing, pOutFields, "", 100, 0
End Sub