Beispiel #1
0
    private bool GetLocalVersion(out ELEMENT_VER version)
    {
        bool success = false;

        version = new ELEMENT_VER(0, 0, 0, 0);
        string strLine;

        try
        {
            StreamReader reader = FileOperate.OpenTextFile(strGameOldVerFile);
            if (reader == null)
            {
                goto END;
            }

            strLine = reader.ReadLine();
            reader.Close();

            if (strLine != null)
            {
                if (version.Parse(strLine))
                {
                    success = true;
                }
            }
        }
        catch (Exception)
        {
            goto END;
        }
END:
        return(success);
    }
Beispiel #2
0
    public bool SetFirstVersion(string strVer, bool bForceWrite)
    {
        ELEMENT_VER ver = new ELEMENT_VER();

        if (!ver.Parse(strVer))
        {
            LogString(HobaText.Format("[SetFirstVersion] Version Parse Failed! {0}", strVer));
            ver.Set(0, 0, 0, 0);
        }

        return(SetFirstVersion(ver, bForceWrite));
    }
Beispiel #3
0
    //从本地版本文件读取当前版本
    public UpdateRetCode GetLocalVersion()
    {
        string strLine = null;

        try
        {
            StreamReader reader = FileOperate.OpenTextFile(strGameOldVerFile);
            if (reader == null)
            {
                return(UpdateRetCode.element_no_ver_file);
            }

            strLine = reader.ReadLine();
            if (strLine == null)
            {
                reader.Close();
                return(UpdateRetCode.file_read_err);
            }

            reader.Close();
        }
        catch (Exception)
        {
            return(UpdateRetCode.fail);
        }

        ELEMENT_VER ver = new ELEMENT_VER(0, 0, 0, 0);

        if (!ver.Parse(strLine))
        {
            return(UpdateRetCode.fail);
        }

        m_CurrentVersion = ver;
        return(UpdateRetCode.success);
    }
Beispiel #4
0
    public UpdateRetCode ReadIncFileList(string strFile, out FileIncList fileIncList, out ELEMENT_VER newVer)
    {
        UpdateRetCode ret = UpdateRetCode.success;

        newVer      = new ELEMENT_VER();
        fileIncList = new FileIncList();

        using (StreamReader reader = FileOperate.OpenTextFile(strFile))
        {
            ELEMENT_VER verFrom = new ELEMENT_VER();
            ELEMENT_VER verTo   = new ELEMENT_VER();

            //read header
            //"# %d.%d.%d %d.%d.%d %s %d"
            try
            {
                var strLine = reader.ReadLine();
                if (string.IsNullOrEmpty(strLine))
                {
                    return(UpdateRetCode.patcher_invalid_ver_file);
                }

                char[] split = { ' ', '\t' };
                {
                    var arr = strLine.Split(split);
                    if (arr.Length >= 5 && arr[0] == "#")
                    {
                        verFrom.Parse(arr[1]);
                        verTo.Parse(arr[2]);
                        //projName = arr[3];
                        //nUpdateSize = Int32.Parse(arr[4]);
                    }
                    else
                    {
                        return(UpdateRetCode.patcher_invalid_ver_file);
                    }
                }

                //检查版本
                if (m_CurrentVersion < verFrom)
                {
                    return(UpdateRetCode.patcher_version_too_new);
                }

                if (m_CurrentVersion > verTo || m_CurrentVersion == verTo)
                {
                    return(UpdateRetCode.patcher_version_too_old);
                }

                newVer = verTo;         //设置新版本

                while (true)
                {
                    strLine = reader.ReadLine();
                    if (strLine == null)
                    {
                        break;
                    }

                    if (strLine[0] == '#')
                    {
                        continue;
                    }

                    var arr = strLine.Split(split);
                    if (arr.Length >= 2)
                    {
                        string md5      = arr[0];
                        string filename = arr[1];
                        fileIncList.AddFile(md5, filename);
                    }
                    else
                    {
                        return(UpdateRetCode.patcher_invalid_ver_file);
                    }
                }
            }
            catch (Exception)
            {
                return(UpdateRetCode.fail);
            }
        }
        return(ret);
    }