diff --git a/src/ViewModels/PacketViewModel.cs b/src/ViewModels/PacketViewModel.cs index 172a313..9c40e96 100644 --- a/src/ViewModels/PacketViewModel.cs +++ b/src/ViewModels/PacketViewModel.cs @@ -355,7 +355,8 @@ private async Task CreateConfigInfoFile() }; var json = JsonConvert.SerializeObject(configInfo, Formatting.Indented); - var configFilePath = Path.Combine(AppContext.BaseDirectory, "update_config.json"); + Directory.CreateDirectory(ConfigModel.PatchDirectory); + var configFilePath = Path.Combine(ConfigModel.PatchDirectory, "update_config.json"); await File.WriteAllTextAsync(configFilePath, json, Encoding.UTF8); @@ -482,15 +483,15 @@ private static string SearchExeFileAndGetDirectory(string rootDirectory, string private void CreateDirectory() { - var baseDir = AppContext.BaseDirectory; + var baseDir = GetApplicationDataDirectory(); - var packateDir = Path.Combine(baseDir, "packets"); - if (!Directory.Exists(packateDir)) + var packetDir = Path.Combine(baseDir, "packets"); + if (!Directory.Exists(packetDir)) { - Directory.CreateDirectory(packateDir); + Directory.CreateDirectory(packetDir); } - var patchDir = Path.Combine(packateDir, "patch"); + var patchDir = Path.Combine(packetDir, "patch"); if (!Directory.Exists(patchDir)) { Directory.CreateDirectory(patchDir); @@ -498,6 +499,17 @@ private void CreateDirectory() ConfigModel.PatchDirectory = patchDir; } + + private static string GetApplicationDataDirectory() + { + var localApplicationData = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); + if (string.IsNullOrWhiteSpace(localApplicationData)) + { + return AppContext.BaseDirectory; + } + + return Path.Combine(localApplicationData, "GeneralUpdate.Tool.Avalonia"); + } static void OpenFileDirectoryAndSelectFile(string filePath) { @@ -513,4 +525,4 @@ static void OpenFileDirectoryAndSelectFile(string filePath) UseShellExecute = true }); } -} \ No newline at end of file +}