user.config文件的备份和恢复(winform)
场景
出现user.config文件内容破坏,全为0x00的问题。
思路
备份和恢复。启动时,如果user.config文件有效,则备份到备份文件,如果无效,则恢复备份文件到user.config文件。
文件备份和恢复函数(Program.cs文件)
private static bool MonitorConfigFileIsDamage()
{
string configPathBackup;
try
{
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal);
configPathBackup = config.FilePath + ".bak";
config.SaveAs(configPathBackup, ConfigurationSaveMode.Full, true);
return true;
}
catch (ConfigurationErrorsException ex)
{
string filename = ex.Filename;
configPathBackup = filename + ".bak";
if (File.Exists(filename) == true)
{
File.Delete(filename);
if (!string.IsNullOrEmpty(configPathBackup) && File.Exists(configPathBackup))
{
File.Copy(configPathBackup, filename, true);
}
}
Settings.Default.Reload();
return false;
}
}
调用文件备份和恢复函数(Program.cs文件)
[STAThread]
static void Main(string[] args)
{
if (MonitorConfigFileIsDamage() == false)
{
Application.Restart();
return;
}
}