public static void AddTableToListBox(IWorkspace pWorkspace, ImageListBoxControl imageListBoxControl1) { if (pWorkspace != null) { IconType iconType = IconType.Table; IEnumDatasetName enumDatasetName = pWorkspace.get_DatasetNames(esriDatasetType.esriDTTable); try { enumDatasetName.Reset(); IDatasetName datasetName; while ((datasetName = enumDatasetName.Next()) != null) { ITableName tableName = datasetName as ITableName; if (tableName != null) { ControlAPI.AddItemToListBox(iconType, datasetName.Name, imageListBoxControl1); } } } finally { if (enumDatasetName != null) { Marshal.ReleaseComObject(enumDatasetName); } } } }
public static void AddFeatureDatasetToListBox(IWorkspace pWorkspace, ImageListBoxControl imageListBoxControl1, DataType type) { if (pWorkspace != null) { List <string> list = new List <string>(); IEnumDatasetName enumDatasetName = pWorkspace.get_DatasetNames(esriDatasetType.esriDTFeatureDataset); try { enumDatasetName.Reset(); IDatasetName datasetName; while ((datasetName = enumDatasetName.Next()) != null) { list.Add(datasetName.Name); } } finally { if (enumDatasetName != null) { Marshal.ReleaseComObject(enumDatasetName); } } list.Sort(); IconType iconType = IconType.FGDBDataset; if (type <= DataType.sde) { if (type != DataType.mdb) { if (type == DataType.sde) { iconType = IconType.SDEDataset; } } else { iconType = IconType.PGDBDataset; } } else if (type != DataType.cad) { if (type == DataType.coverage) { iconType = IconType.Coverage; } } else { iconType = IconType.Cad; } foreach (string current in list) { ControlAPI.AddItemToListBox(iconType, current, imageListBoxControl1); } } }
public static void ListE00Files(string sPath, ImageListBoxControl imageListBoxControl1) { DirectoryInfo directoryInfo = new DirectoryInfo(sPath); FileInfo[] files = directoryInfo.GetFiles("*.e00"); if (files != null && files.Length != 0) { FileInfo[] array = files; for (int i = 0; i < array.Length; i++) { FileInfo fileInfo = array[i]; if (!fileInfo.FullName.Contains(' ')) { ControlAPI.AddItemToListBox(IconType.E00, fileInfo.Name, imageListBoxControl1); } } } }
public static void AddFeatureClassToListBox(IEnumDatasetName pEnumDatasetName, ImageListBoxControl imageListBoxControl1, DataType dataType, esriGeometryType geometryType) { if (pEnumDatasetName != null) { IconType value = IconType.PGDBAnnotation; IconType value2 = IconType.PGDBPoint; IconType value3 = IconType.PGDBLine; IconType value4 = IconType.PGDBPolygon; if (dataType <= DataType.gdb) { if (dataType != DataType.shp) { if (dataType == DataType.gdb) { value = IconType.FGDBAnnotation; value2 = IconType.FGDBPoint; value3 = IconType.FGDBLine; value4 = IconType.FGDBPolygon; } } else { value2 = IconType.ShpPoint; value3 = IconType.ShpLine; value4 = IconType.ShpPolygon; } } else if (dataType != DataType.sde) { if (dataType != DataType.cad) { if (dataType == DataType.coverage) { value = IconType.CovAnnotation; value2 = IconType.CovPoint; value3 = IconType.CovArc; value4 = IconType.CovPolygon; } } else { value = IconType.CadAnnotation; value2 = IconType.CadPoint; value3 = IconType.CadLine; value4 = IconType.CadPolygon; } } else { value = IconType.SDEAnnotation; value2 = IconType.SDEPoint; value3 = IconType.SDELine; value4 = IconType.SDEPolygon; } SortedDictionary <string, IconType> sortedDictionary = new SortedDictionary <string, IconType>(); try { pEnumDatasetName.Reset(); IDatasetName datasetName; while ((datasetName = pEnumDatasetName.Next()) != null) { IFeatureClassName featureClassName = datasetName as IFeatureClassName; if (featureClassName != null) { if (geometryType == esriGeometryType.esriGeometryAny || geometryType == featureClassName.ShapeType) { if (featureClassName.FeatureType == esriFeatureType.esriFTAnnotation || featureClassName.FeatureType == esriFeatureType.esriFTCoverageAnnotation) { sortedDictionary.Add(datasetName.Name, value); } else if (featureClassName.FeatureType == esriFeatureType.esriFTSimple) { switch (featureClassName.ShapeType) { case esriGeometryType.esriGeometryPoint: case esriGeometryType.esriGeometryMultipoint: sortedDictionary.Add(datasetName.Name, value2); break; case esriGeometryType.esriGeometryPolyline: sortedDictionary.Add(datasetName.Name, value3); break; case esriGeometryType.esriGeometryPolygon: sortedDictionary.Add(datasetName.Name, value4); break; case esriGeometryType.esriGeometryMultiPatch: sortedDictionary.Add(datasetName.Name, IconType.CadMultiPatch); break; } } } } } } finally { if (pEnumDatasetName != null) { Marshal.ReleaseComObject(pEnumDatasetName); } } foreach (KeyValuePair <string, IconType> current in sortedDictionary) { ControlAPI.AddItemToListBox(current.Value, current.Key, imageListBoxControl1); } } }
public static void OpenFolder(string sPath, ImageListBoxControl imageListBoxControl1, DataType type, List <WorkspaceInfo> pWorkspaceList, esriGeometryType geometryType) { imageListBoxControl1.BeginUpdate(); imageListBoxControl1.Items.Clear(); if (!Directory.Exists(sPath)) { XtraMessageBox.Show("路径不存在!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); } else { DirectoryInfo directoryInfo = new DirectoryInfo(sPath); DirectoryInfo[] directories = directoryInfo.GetDirectories(); SortedDictionary <string, IconType> sortedDictionary = new SortedDictionary <string, IconType>(); List <string> list = null; if (type == DataType.all || (type & DataType.raster) == DataType.raster) { list = ControlAPI.GetRasterNames(sPath, pWorkspaceList); } DirectoryInfo[] array = directories; for (int i = 0; i < array.Length; i++) { DirectoryInfo directoryInfo2 = array[i]; if ((directoryInfo2.Attributes & FileAttributes.Hidden) != FileAttributes.Hidden) { if (directoryInfo2.Name.EndsWith(".gdb", StringComparison.CurrentCultureIgnoreCase)) { if (type == DataType.all || (type & DataType.gdb) == DataType.gdb) { sortedDictionary.Add(directoryInfo2.Name, IconType.FGDB); } } else if (list == null || !list.Contains(directoryInfo2.Name)) { ControlAPI.AddItemToListBox(IconType.Folder, directoryInfo2.Name, imageListBoxControl1); } } } if (type == DataType.all || (type & DataType.mdb) == DataType.mdb) { FileInfo[] files = directoryInfo.GetFiles("*.mdb"); FileInfo[] array2 = files; for (int i = 0; i < array2.Length; i++) { FileInfo fileInfo = array2[i]; sortedDictionary.Add(fileInfo.Name, IconType.PGDB); } } foreach (KeyValuePair <string, IconType> current in sortedDictionary) { ControlAPI.AddItemToListBox(current.Value, current.Key, imageListBoxControl1); } if (list != null && list.Count > 0) { foreach (string current2 in list) { ControlAPI.AddItemToListBox(IconType.RasterDataset, current2, imageListBoxControl1); } } if (type == DataType.all || (type & DataType.shp) == DataType.shp) { ControlAPI.ListShpFiles(sPath, imageListBoxControl1, pWorkspaceList, geometryType); } if (type == DataType.all || (type & DataType.cad) == DataType.cad) { ControlAPI.OpenGeodatabase(sPath, imageListBoxControl1, DataType.cad, pWorkspaceList, geometryType, true, false); } imageListBoxControl1.EndUpdate(); } }