/// <summary> /// 这里增加一个判断一个文件是否该驱动支持的静态方法 /// </summary> /// <param name="fileName"></param> /// <returns></returns> internal static bool IsSupport(string fileName) { try { AttributeManager attributes = new AttributeManager(); using (Dataset dataset = Gdal.Open(fileName, Access.GA_ReadOnly)) { GDALHelper.GetDatasetAttributes(dataset, attributes); } Dictionary <string, string> allGdalSubDatasets = attributes.GetAttributeDomain("SUBDATASETS"); string[] allGdalSubDatasetArray = RecordAllSubDatasetNames(allGdalSubDatasets); if (allGdalSubDatasetArray == null || allGdalSubDatasetArray.Length != 6) { return(false); } using (Hdf5Operator hdf = new Hdf5Operator(fileName)) { allGdalSubDatasetArray = hdf.GetDatasetNames; } string[] DATASETS = new string[] { "icecon_north_asc", "icecon_north_avg", "icecon_north_des", "icecon_south_asc", "icecon_south_avg", "icecon_south_des" }; for (int i = 0; i < 6; i++) { if (!allGdalSubDatasetArray[i].Contains(DATASETS[i]))//数据集必须完全匹配,才能用此数据集 { return(false); } } return(true); } catch { return(false); } }