protected void notifyVersionDownloaded(FileWrap versionFile) { // 版本文件下载完毕后,提示是否有新版本可以更新 string versionString = FileUtility.openTxtFile(CommonDefine.VERSION); bool hasNewVersion = false; if (versionString == "") { hasNewVersion = true; } else { string remoteVersion = BinaryUtility.bytesToString(versionFile.getFileData()); hasNewVersion = remoteVersion != versionString; } if (hasNewVersion) { setState(UPGRADE_STATE.US_WAIT_FOR_UPGRADE); } else { done(); } mEditorCore.sendDelayEvent(CORE_EVENT_TYPE.CET_NEW_VERSION, StringUtility.boolToString(hasNewVersion)); }
protected void notifyFileListDownloaded(FileWrap listFile) { // 列表文件下载完毕,解析列表 setState(UPGRADE_STATE.US_PARSING_REMOTE_FILE_LIST); string listContent = BinaryUtility.bytesToString(listFile.getFileData()); parseRemoteFileList(listContent); setState(UPGRADE_STATE.US_GENERATE_LOCAL_FILE); // 检查本地文件 getLocalFileList(); // 如果在检查本地文件过程中取消了,则直接返回 if (mCancel) { setState(UPGRADE_STATE.US_NONE); return; } // 判断出需要更新的文件 setState(UPGRADE_STATE.US_GENERATE_MODIFIED_FILE); // 然后下载修改过和新增的文件 mModifiedList = generateModifiedFile(mRemoteFileList, mLocalFileList, mIgnorePathList); setState(UPGRADE_STATE.US_DOWNLOADING_REMOTE_FILE); if (mModifiedList.Count() == 0) { // 如果有临时目录,则将临时目录中的所有文件替换到游戏目录 notifyAllDownloaded(); mEditorCore.sendDelayEvent(CORE_EVENT_TYPE.CET_NOTHING_UPDATE); done(); } else { // 计算所有需要下载的文件的大小 mTotalSize = 0.0f; foreach (var item in mModifiedList) { mTotalSize = mTotalSize + item.Value.mFileSize; } // 开始下载所有文件,并且开始计时 mCurTimeCount = 0.0f; foreach (var item in mModifiedList) { // 如果临时文件存在,表示之前没下载成功,暂时删除临时文件 // 如果实现断点续传时需要获取临时文件的大小 long offset = 0; if (FileUtility.isFileExist(CommonDefine.TEMP_PATH + item.Key + CommonDefine.TEMP_FILE_EXTENSION)) { offset = FileUtility.getFileSize(CommonDefine.TEMP_PATH + item.Key + CommonDefine.TEMP_FILE_EXTENSION); } repuestDownload(item.Key, offset); } } }
protected void notifyVersionDownloaded(FileWrap versionFile) { // 版本文件下载完毕后,提示是否有新版本可以更新 string localUpdateInfo = ""; string localVersion = getVersionFromFile(FileUtility.openTxtFile(CommonDefine.VERSION), ref localUpdateInfo); string remoteUpdateInfo = ""; string remoteVersion = getVersionFromFile(BinaryUtility.bytesToString(versionFile.getFileData()), ref remoteUpdateInfo); bool hasNewVersion = remoteVersion != localVersion; if (hasNewVersion) { setState(UPGRADE_STATE.US_WAIT_FOR_UPGRADE); } else { done(); } List <string> paramList = new List <string>(); paramList.Add(StringUtility.boolToString(hasNewVersion)); paramList.Add(remoteUpdateInfo); mEditorCore.sendDelayEvent(CORE_EVENT_TYPE.CET_NEW_VERSION, paramList); }