通过IWorkspaceName接口的WorkspaceFactoryProgID属性来判断
IFeatureClass pFC = pFeatureLyr.FeatureClass;
IDataset dataset = pFC as IDataset;
IWorkspaceName ws = ((IDatasetName)(dataset.FullName)).WorkspaceName;
if (ws.WorkspaceFactoryProgID.IndexOf("AccessWorkspaceFactory") > -1)
{
}
else if (ws.WorkspaceFactoryProgID.IndexOf("FileGDBWorkspaceFactory") > -1)
{
}
else if (ws.WorkspaceFactoryProgID.IndexOf("SdeWorkspaceFactory") > -1)
{
}
……
WorkspaceFactoryProgID
-
esriDataSourcesGDB.AccessWorkspaceFactory
-
esriDataSourcesFile.ArcInfoWorkspaceFactory
-
esriDataSourcesFile.CadWorkspaceFactory
-
esriDataSourcesGDB.FileGDBWorkspaceFactory
-
esriDataSourcesOleDB.OLEDBWorkspaceFactory
-
esriDataSourcesFile.PCCoverageWorkspaceFactory
-
esriDataSourcesRaster.RasterWorkspaceFactory
-
esriDataSourcesGDB.SdeWorkspaceFactory
-
esriDataSourcesFile.ShapefileWorkspaceFactory
-
esriDataSourcesOleDB.TextFileWorkspaceFactory
-
esriDataSourcesFile.TextFileWorkspaceFactory
-
esriDataSourcesFile.TinWorkspaceFactory
-
esriDataSourcesFile.VpfWorkspaceFactory