//根据解析出来的map文件,比较本地文件的md5,如果不同,则需要重新下载 private int checkLocalFileMD5() { UpdateLog.DEBUG_LOG("检查本地文件md5+++"); int ret = CodeDefine.RET_SUCCESS; int total = _parsedMapDataList.Count; _checkedCount = 0; for (int i = 0; i < _parsedMapDataList.Count; i++) { MapFileData fileData = _parsedMapDataList[i]; if (fileData.Name.ToLower().Contains("localversion.xml") || fileData.Name.ToLower().Contains("resourceassetbundles")) { continue; } string localFile = (_storeDir + "/" + fileData.Dir + fileData.Name).Replace("\\", "/").Replace("//", "/"); string localFileMD5 = MD5.MD5File(localFile); if (localFileMD5.Equals("") || fileData.Md5.Equals(localFileMD5) == false) { MapFileDataListForDownload.Add(fileData); } _checkedCount++; } if (_checkedCount > 0) { UpdateLog.WARN_LOG("需要下载文件"); } UpdateLog.DEBUG_LOG("检查本地文件md5---"); return(ret); }
public override void Uninitialize() { if (MapFileDataListForDownload != null) { MapFileDataListForDownload.Clear(); } if (_parsedMapDataList != null) { _parsedMapDataList.Clear(); } }
//解析本地所有的map文件 private int parseMapFiles() { UpdateLog.DEBUG_LOG("解析map文件+++"); int ret = CodeDefine.RET_SUCCESS; MapFileDataListForDownload.Clear(); _parsedMapDataList.Clear(); string resUrl = ""; for (int i = 0; i < _currentData.VersionModelBaseList.Count; i++) { VersionModel mapModel = _currentData.VersionModelBaseList[i]; //分段版本比本地分段更大,则跳过解析,本地可能没有 if (LocalXml.BaseResVersion.CompareTo(mapModel.ToVersion.Replace("。", ".")) < 0) { continue; } string mapUrl = mapModel.Map_url.Replace("\\", "/"); string mapName = mapUrl.Substring(mapUrl.LastIndexOf("/") + 1); UnityEngine.Debug.Log("mapName:" + mapName); string localMapFile = System.IO.Path.Combine(_storeDir, mapName); resUrl = mapModel.ResourceUrl; MapFileManage mapManager = new MapFileManage(); ret = mapManager.parseMapFile(localMapFile, mapModel.ResourceUrl, _storeDir); if (ret <= CodeDefine.RET_FAIL) { return(ret); } _parsedMapDataList.AddRange(mapManager.GetMapFileDataList()); } UpdateLog.DEBUG_LOG("解析map文件---"); return(ret); }