提交 ef627692 编写于 作者: A Aigio Liu

v2.8.3 rev.1

fix SettingsHost.Load
上级 6f28ce09
...@@ -49,29 +49,91 @@ public static class SettingsHost ...@@ -49,29 +49,91 @@ public static class SettingsHost
} }
} }
/// <summary>
/// 尝试备份配置
/// </summary>
/// <param name="bakLocalFilePath"></param>
static void TryBackup(string bakLocalFilePath)
{
try
{
var localFilePath = SettingsHostBase.LocalFilePath;
if (File.Exists(localFilePath))
{
File.Copy(localFilePath, bakLocalFilePath, true);
}
}
catch (Exception ex)
{
Log.Error(nameof(SettingsHost), ex, "Config TryBackUp");
}
}
/// <summary>
/// 尝试还原备份配置,返回是否有备份文件
/// </summary>
/// <param name="bakLocalFilePath"></param>
/// <returns></returns>
static bool TryRestoreBackup(string bakLocalFilePath)
{
try
{
var exists = File.Exists(bakLocalFilePath);
if (exists)
{
var localFilePath = SettingsHostBase.LocalFilePath;
File.Copy(bakLocalFilePath, localFilePath, true);
}
return exists;
}
catch (Exception ex)
{
Log.Error(nameof(SettingsHost), ex, "Config TryRestoreBackup");
}
return false;
}
/// <summary>
/// 尝试删除配置
/// </summary>
static void TryDelete()
{
try
{
var localFilePath = SettingsHostBase.LocalFilePath;
if (File.Exists(localFilePath))
{
File.Delete(localFilePath);
}
}
catch (Exception ex)
{
Log.Error(nameof(SettingsHost), ex, "Config TryDelete");
}
}
public static void Load() public static void Load()
{ {
var isLoad = false;
var bakLocalFilePath = $"{SettingsHostBase.LocalFilePath}.bak"; var bakLocalFilePath = $"{SettingsHostBase.LocalFilePath}.bak";
try try
{ {
SettingsHostBase.Local.Load(); SettingsHostBase.Local.Load();
isLoad = true;
if (File.Exists(SettingsHostBase.LocalFilePath)) TryBackup(bakLocalFilePath);
File.Copy(SettingsHostBase.LocalFilePath, bakLocalFilePath, true);
} }
catch (Exception ex) catch (Exception ex)
{ {
if (File.Exists(bakLocalFilePath)) if (!TryRestoreBackup(bakLocalFilePath))
{ {
File.Copy(bakLocalFilePath, SettingsHostBase.LocalFilePath, true); // 还原备份文件失败,删除当前配置
TryDelete();
} }
else if (File.Exists(SettingsHostBase.LocalFilePath))
{
File.Delete(SettingsHostBase.LocalFilePath);
}
Log.Error(nameof(SettingsHost), ex, "Config Load");
SettingsHostBase.Local.Load(); Log.Error(nameof(SettingsHost), ex, $"Config Load, isLoad: {isLoad}");
if (!isLoad) SettingsHostBase.Local.Load();
} }
} }
} }
......
...@@ -291,6 +291,10 @@ public static class IOPath ...@@ -291,6 +291,10 @@ public static class IOPath
{ {
paths[i] = item; paths[i] = item;
} }
else
{
DirCreateByNotExists(paths[i]);
}
} }
InitFileSystem(GetAppDataDirectory, GetCacheDirectory); InitFileSystem(GetAppDataDirectory, GetCacheDirectory);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册