コード例 #1
0
        /// <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);
                    }
                }
            }
        }
コード例 #2
0
 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);
     }
 }