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); }
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)); }
//从本地版本文件读取当前版本 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); }
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); }