public void callDownloadSR1HD() { long totalBytes = 1L; string msg = "sosi. CallWholeUpdate"; if (form.Lang == "ru") { totalBytes = 179385718L; msg = "Скачивание файлов: "; } if (form.Lang == "eng") { totalBytes = 171312408L; msg = "Downloading files: "; } string tempArchivePath = executePath + "\\Temp.zip"; FileInfo fileInfo = DownloadFiles(executePath, tempArchivePath, SRHD1Url, SRHD1Url, callProgressBar: true, totalBytes, msg); Thread.Sleep(1200); temp.Value = 0; if (!form.abortEtoGreh) { form.archiveBegun = true; ZipArchiveExtensions.Unpack(tempArchivePath, executePath, this, form, true); } else { File.Delete(tempArchivePath); } downloadSR1HDMode = false; }
private void OnClosing(object sender, CancelEventArgs cancelEventArgs) { if (form.updateInProgress || form.archiveBegun) { string text = "видимо автор малок если это сообщение появилось. Проблема в update.OnClosing, с языком"; if (form.Lang == "ru") { text = "Вы уверены, что хотите закрыть это окно? Обновление в процессе"; } if (form.Lang == "eng") { text = "Update is currently in progress. Are you sure that you want to close the window? "; } switch (MessageBox.Show(text, "", MessageBoxButtons.YesNo, MessageBoxIcon.Question)) { case DialogResult.Yes: form.changeEnabledStatusButtons(); form.updateInProgress = false; form.abortEtoGreh = true; form.updateForm = null; FileDownloader.getSetAbourt(true); ZipArchiveExtensions.setUpdateCancel(mystate: true); break; case DialogResult.No: if (!downloadSR1HDMode) { form.updateRequired = true; } cancelEventArgs.Cancel = true; break; } } else if (form != null) { form.changeEnabledStatusButtons(); if (!updateRequired) { form.play.Enabled = true; form.play.Image = Resources._2ContinueA; } form.updateForm = null; } }
public void downloadAllPatches(bool allUpdate) { form.updateRequired = false; string versionPath = StringProcessing.StepUp(form.pathToFile) + "\\Mods\\version.txt"; double num = 7.0; List <string> list = new List <string>(); float currentVersion = 7.0f; if (!allUpdate) { using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("SRHDLauncher.launсherHashСopy.txt")) { TextReader textReader = new StreamReader(stream); string item; while ((item = textReader.ReadLine()) != null) { list.Add(item); } } string ln = ""; using (StreamReader file = new StreamReader(versionPath)) { int counter = 0; ln = file.ReadLine(); file.Close(); } float.TryParse(ln, out currentVersion); } string[] array = list.ToArray(); for (int i = 1; i < info.Length - 1; i += 5) { if (list != null) { bool unpackToSave = false; if (info[i + 2][0] == '1') { unpackToSave = true; } float result = 0f; long result2 = 1L; bool flag = float.TryParse(info[i], out result); bool flag2 = long.TryParse(info[i + 2], out result2); if (flag && flag2 && currentVersion < (double)result) { string path = StringProcessing.StepUp(form.pathToFile) + "\\Mods\\version.txt"; num = double.Parse(info[i]); if (File.Exists(path)) { File.Delete(path); } using (StreamWriter streamWriter = File.CreateText(path)) { streamWriter.WriteLine(info[i]); } string text = StringProcessing.StepUp(executePath) + "\\Mods\\" + info[i] + ".zip"; string message = ""; FileDownloader.DownloadFileFromURLToPath(info[i + 1], info[i + 1], text, callProgressBar: true, this, form, result2, message); string pathRegular = StringProcessing.StepUp(executePath) + "\\Mods"; if (unpackToSave && info[i + 3] == form.Lang) { string pathForSaves = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\spacerangershd\\save"; ZipArchiveExtensions.Unpack(text, pathForSaves, this, form, true); } else { if (!unpackToSave) { ZipArchiveExtensions.Unpack(text, pathRegular, this, form, true); } } } } } string text2 = "downloadAllPatches"; FileDownloader.DownloadFileFromURLToPath(AppInfo.RU_CHANGLEOG, AppInfo.RU_CHANGELOG_MIRROR, StringProcessing.StepUp(form.pathToFile) + "\\changeLogRu.txt", callProgressBar: false, this, form, ""); FileDownloader.DownloadFileFromURLToPath(AppInfo.ENG_CHANGELOG, AppInfo.ENG_CHANGELOG_MIRROR, StringProcessing.StepUp(form.pathToFile) + "\\changeLogEng.txt", callProgressBar: false, this, form, ""); if (form.Lang == "ru") { Process.Start(StringProcessing.StepUp(form.pathToFile) + "\\changeLogRu.txt"); } if (form.Lang == "eng") { Process.Start(StringProcessing.StepUp(form.pathToFile) + "\\changeLogEng.txt"); } }
public void callWholeUpdate() { //Задание всевозможный путей для работы с папкой игры и модов. string SRHDFolder = StringProcessing.StepUp(form.pathToFile); string ModsFolder = SRHDFolder + "\\Mods"; string pathToModCfg = ModsFolder + "\\ModCFG.txt"; string pathToTempCfg = ModsFolder + "\\tempCfg.txt"; if (!Directory.Exists(ModsFolder)) { Directory.CreateDirectory(ModsFolder); } //Ниже идет проверка на то, удалены ли какие-либо моды в результаты обновлений ModCfg.txt на диске. if (File.Exists(pathToModCfg)) { //Скачка Cfg файла приложения со списком модов FileDownloader.DownloadFileFromURLToPath(AppInfo.APP_CFG_LINK_FILE, AppInfo.APP_CFG_LINK_FILE, pathToTempCfg, callProgressBar: false, this, null, 1L, ""); List <string> localModCfg = ParseCfgFile(File.ReadAllLines(pathToModCfg)); //Локальный ModCfg.txt List <string> driveModCfg = ParseCfgFile(File.ReadAllLines(pathToTempCfg)); //ModCfg.txt с Диска foreach (string item in localModCfg) { if (!driveModCfg.Any(item.Contains)) { string path3 = ModsFolder + "\\" + item; if (Directory.Exists(path3)) { Directory.Delete(ModsFolder + "\\" + item, recursive: true); } } } File.Delete(pathToTempCfg); } //Происходит самоу далние, путем сравнения двух массивов string[] modFolderFileList = Directory.GetFiles(ModsFolder); if (modFolderFileList.Length > 1) { foreach (string text3 in modFolderFileList) { try { if (!text3.Contains("ModCFG.txt")) { File.Delete(text3); } } catch (Exception) { } } } //Блок ниже скачивает сам архив с модом диска string tempZipFolder = SRHDFolder + "\\Temp.zip"; string msg = StringProcessing.getMessage(form.Lang, "Скачивание файлов: ", "Downloading files: "); DownloadFiles(SRHDFolder, SRHDFolder + "\\Temp.zip", AppInfo.APP_ZIP_FILE_LINK, AppInfo.APP_ZIP_FILE_LINK_MIRROR, callProgressBar: true, form.totalBytes, msg); //Вроде как необходим какой-то перерыв чтоб записаться на диск, даже после окончания работы воркера Thread.Sleep(600); //Если никто не отменил скачку, начинается распаковка if (!form.abortEtoGreh) { form.archiveBegun = true; ZipArchiveExtensions.Unpack(tempZipFolder, SRHDFolder, this, form, false); Thread.Sleep(50); } else { File.Delete(tempZipFolder); } }