/// <summary> /// 拷贝文件并覆盖旧数据文件 /// </summary> IEnumerator UpdatingCopyCacheFile() { if (ErrorCode != emErrorCode.None) { yield break; } //从缓存中剪切主配置文件覆盖旧文件 for (int i = 0; i < Common.CONFIG_NAME_ARRAY.Length; ++i) { UpdateCompleteValue(i, Common.CONFIG_NAME_ARRAY.Length); try { var file = Common.CONFIG_NAME_ARRAY[i]; var src = Common.GetUpdaterCacheFileFullName(file); var dest = Common.GetFileFullName(file); if (File.Exists(dest)) { File.Delete(dest); } File.Move(src, dest); } catch (System.Exception ex) { if (Common.CONFIG_REQUIRE_CONDITION_ARRAY[i]) { var message = Common.CONFIG_NAME_ARRAY[i] + ", " + ex.Message; ErrorWriteFile(emIOOperateCode.Fail, message); break; } } } // 拷贝失败则需要把本地配置文件删除 // (由于部分配置文件拷贝失败,会导致本地的配置文件不匹配会引起版本信息错误, 统一全部删除则下次进入游戏会重新从安装包拷贝全部数据) if (IsFailed) { for (int i = 0; i < Common.CONFIG_NAME_ARRAY.Length; ++i) { var fileFullName = Common.GetFileFullName(Common.CONFIG_NAME_ARRAY[i]); if (File.Exists(fileFullName)) { File.Delete(fileFullName); } } } }
void CutCacheFileToNative(string file) { try { var src = Common.GetUpdaterCacheFileFullName(file); var dest = Common.GetFileFullName(file); if (!File.Exists(src)) { return; } if (File.Exists(dest)) { File.Delete(dest); } File.Move(src, dest); } catch (System.Exception ex) { ErrorWriteFile(emIOOperateCode.Fail, ex.Message); } }