通过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