fix:关机时不保存使用数据

This commit is contained in:
CJK_mkp
2025-08-18 17:54:41 +08:00
committed by GitHub
parent cce0b930ec
commit cc88630859
-108
View File
@@ -2782,113 +2782,5 @@ namespace Ink_Canvas.Helpers
}
}
}
/// <summary>
/// 加载现有使用统计数据(从主文件或备份)
/// </summary>
private static UsageStats LoadUsageStats()
{
// 尝试从主文件加载
if (File.Exists(UsageStatsFilePath))
{
try
{
string json = File.ReadAllText(UsageStatsFilePath);
return JsonConvert.DeserializeObject<UsageStats>(json);
}
catch
{
// 主文件损坏,尝试从备份加载
if (File.Exists(BackupUsageStatsPath))
{
try
{
string backupJson = File.ReadAllText(BackupUsageStatsPath);
return JsonConvert.DeserializeObject<UsageStats>(backupJson);
}
catch
{
// 可继续尝试其他备份路径
return LoadFromOtherBackups();
}
}
}
}
return null;
}
/// <summary>
/// 从其他备份路径加载数据
/// </summary>
private static UsageStats LoadFromOtherBackups()
{
// 尝试二级备份
if (File.Exists(SecondaryUsageBackupPath))
{
try
{
return JsonConvert.DeserializeObject<UsageStats>(File.ReadAllText(SecondaryUsageBackupPath));
}
catch { }
}
// 尝试三级备份
if (File.Exists(TertiaryUsageBackupPath))
{
try
{
return JsonConvert.DeserializeObject<UsageStats>(File.ReadAllText(TertiaryUsageBackupPath));
}
catch { }
}
// 尝试四级备份
if (File.Exists(QuaternaryUsageBackupPath))
{
try
{
return JsonConvert.DeserializeObject<UsageStats>(File.ReadAllText(QuaternaryUsageBackupPath));
}
catch { }
}
return null;
}
/// <summary>
/// 保存使用统计数据到所有备份位置
/// </summary>
private static void SaveUsageStatsToAllLocations(UsageStats stats)
{
string json = JsonConvert.SerializeObject(stats, Formatting.Indented);
// 保存到主文件
SaveToFile(UsageStatsFilePath, json);
// 保存到多重备份路径
SaveToFile(BackupUsageStatsPath, json);
SaveToFile(SecondaryUsageBackupPath, json);
SaveToFile(TertiaryUsageBackupPath, json);
SaveToFile(QuaternaryUsageBackupPath, json);
}
/// <summary>
/// 辅助方法:保存内容到文件(确保目录存在)
/// </summary>
private static void SaveToFile(string path, string content)
{
try
{
string dir = Path.GetDirectoryName(path);
if (!Directory.Exists(dir))
{
Directory.CreateDirectory(dir);
}
File.WriteAllText(path, content);
}
catch (Exception ex)
{
LogHelper.WriteLogToFile($"保存文件 {path} 失败: {ex.Message}", LogHelper.LogType.Warning);
}
}
}
}