user.config文件的备份和恢复(winform)

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;
    }
}
posted @ 2024-05-28 22:41  lusonixs  阅读(29)  评论(0编辑  收藏  举报