Сохранить файл настроек при обновлении - C#

Узнай цену своей работы

Формулировка задачи:

Привет! Возникла проблема. Почему то не работает второй раз?! вообщем суть такая: допустим на форме всего 2 кнопки , "Установить" при нажатие на которую скачивается архив, потом распаковывается; и кнопка "открыть конфиг", при нажатии на которую открывается файл настроек из скаченного и распакованного архива. И тут я загорел желанием сохранять уже существующий конфиг при повторном нажатии кнопки "Установить". Вот что у меня получилось:
private void button3_Click(object sender, EventArgs e)
        {
            if (File.Exists(@"MODS/Realism2015v2/sp2_uberfox.xml"))
            {
                File.Move(@"MODS/Realism2015v2/sp2_uberfox.xml", @"MODS/Realism2015v2/sp2_uberfox.xml_tmp");//Сохраняем конфиг в резервном файле
            }
//Скачиваем новый архив
            Uri Uri = new Uri("http://realism2015.ru/realism2015v2/uberfoxmod.7z");
            WebClient.DownloadFileAsync(Uri, "uberfoxmod.7z");
            WebClient.DownloadProgressChanged += new System.Net.DownloadProgressChangedEventHandler(WebClient_DownloadProgressChanged);
            WebClient.DownloadFileCompleted += new System.ComponentModel.AsyncCompletedEventHandler(WebClient_DownloadFileCompleted);
        }
// ...бла бла бла (распаковываю скачанный архив)
void WebClient_DownloadFileCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e) 
        {
            label1.Text = string.Format("Installing...");
            
            using (var extr = new SevenZipExtractor(@"uberfoxmod.7z"))
            {
                extr.ExtractArchive(@"MODS\Realism2015v2");
                extr.FileExtractionStarted += new EventHandler<FileInfoEventArgs>(extr_FileExtractionStarted);
                extr.Extracting += new EventHandler<ProgressEventArgs>(extr_Extracting);
                extr_UberExtractionFinished(); //начинаю восстанавливать предыдущий конфиг
            }
        }
 
 void extr_UberExtractionFinished()
        {
            if (File.Exists(@"MODS/Realism2015v2/sp2_uberfox.xml_tmp"))
            {
                File.Replace(@"MODS/Realism2015v2/sp2_uberfox.xml_tmp", @"MODS/Realism2015v2/sp2_uberfox.xml", @"MODS/Realism2015v2/sp2_uberfox.xml_tmp2", false);
                File.Delete(@"MODS/Realism2015v2/sp2_uberfox.xml_tmp2"); 
            }
            label1.Text = string.Format("UberFoxMod succesfully integrated");
            progressBar1.Value = 0;
        }
Так вот проблема в том что это работает тока 1 раз! при повторном и последующих нажатиях кнопки "Установить" конфиг не восстанавливается... а почему, понять не могу.

Решение задачи: «Сохранить файл настроек при обновлении»

textual
Листинг программы
                File.Move(config, configtmp);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4 из 5
Похожие ответы