Сохранить файл настроек при обновлении - C#
Формулировка задачи:
Привет! Возникла проблема. Почему то не работает второй раз?! вообщем суть такая: допустим на форме всего 2 кнопки , "Установить" при нажатие на которую скачивается архив, потом распаковывается; и кнопка "открыть конфиг", при нажатии на которую открывается файл настроек из скаченного и распакованного архива. И тут я загорел желанием сохранять уже существующий конфиг при повторном нажатии кнопки "Установить". Вот что у меня получилось:
Так вот проблема в том что это работает тока 1 раз! при повторном и последующих нажатиях кнопки "Установить" конфиг не восстанавливается... а почему, понять не могу.
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;
}Решение задачи: «Сохранить файл настроек при обновлении»
textual
Листинг программы
File.Move(config, configtmp);