示例#1
0
        //根据解析出来的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);
        }
示例#2
0
        public override void Uninitialize()
        {
            if (MapFileDataListForDownload != null)
            {
                MapFileDataListForDownload.Clear();
            }

            if (_parsedMapDataList != null)
            {
                _parsedMapDataList.Clear();
            }
        }
示例#3
0
        //解析本地所有的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);
        }