From 285f211f5097fec5e7a94cf2df47edcb591d9615 Mon Sep 17 00:00:00 2001 From: unknown <2564608840@qq.com> Date: Wed, 16 Jul 2025 15:28:36 +0800 Subject: [PATCH 01/33] =?UTF-8?q?add:=E5=A4=87=E4=BB=BD=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Ink Canvas/Helpers/AutoUpdateHelper.cs | 35 +++++++ Ink Canvas/MainWindow.xaml | 23 +++++ Ink Canvas/MainWindow_cs/MW_Settings.cs | 96 +++++++++++++++++++ Ink Canvas/MainWindow_cs/MW_SettingsToLoad.cs | 1 + Ink Canvas/Resources/Settings.cs | 3 + 5 files changed, 158 insertions(+) diff --git a/Ink Canvas/Helpers/AutoUpdateHelper.cs b/Ink Canvas/Helpers/AutoUpdateHelper.cs index 094e2445..9cc250b1 100644 --- a/Ink Canvas/Helpers/AutoUpdateHelper.cs +++ b/Ink Canvas/Helpers/AutoUpdateHelper.cs @@ -11,6 +11,7 @@ using System.Windows.Controls; using System.IO.Compression; using System.Text; using System.Collections.Generic; +using Newtonsoft.Json; namespace Ink_Canvas.Helpers { @@ -417,6 +418,40 @@ namespace Ink_Canvas.Helpers { try { + // 在更新前备份设置文件 + try + { + // 检查是否开启了自动备份 + if (MainWindow.Settings.Advanced.IsAutoBackupBeforeUpdate) + { + // 确保Backups目录存在 + string backupDir = Path.Combine(App.RootPath, "Backups"); + if (!Directory.Exists(backupDir)) + { + Directory.CreateDirectory(backupDir); + LogHelper.WriteLogToFile($"创建备份目录: {backupDir}", LogHelper.LogType.Info); + } + + // 创建备份文件名(使用当前日期时间和版本号) + string backupFileName = $"Settings_BeforeUpdate_v{version}_{DateTime.Now:yyyyMMdd_HHmmss}.json"; + string backupPath = Path.Combine(backupDir, backupFileName); + + // 序列化当前设置并保存到备份文件 + string settingsJson = Newtonsoft.Json.JsonConvert.SerializeObject(MainWindow.Settings, Newtonsoft.Json.Formatting.Indented); + File.WriteAllText(backupPath, settingsJson); + + LogHelper.WriteLogToFile($"更新前自动备份设置成功: {backupPath}", LogHelper.LogType.Info); + } + else + { + LogHelper.WriteLogToFile("更新前自动备份功能已禁用,跳过备份", LogHelper.LogType.Info); + } + } + catch (Exception ex) + { + LogHelper.WriteLogToFile($"更新前自动备份设置时出错: {ex.Message}", LogHelper.LogType.Error); + } + string zipFilePath = Path.Combine(updatesFolderPath, $"InkCanvasForClass.CE.{version}.zip"); LogHelper.WriteLogToFile($"AutoUpdate | Checking for ZIP file: {zipFilePath}"); diff --git a/Ink Canvas/MainWindow.xaml b/Ink Canvas/MainWindow.xaml index 9f43e127..d6b787e8 100644 --- a/Ink Canvas/MainWindow.xaml +++ b/Ink Canvas/MainWindow.xaml @@ -1877,6 +1877,29 @@ + + + + + + + + + + + + +