From ab91f4e7386ec3b2928d09584f0d29e4f783b57c Mon Sep 17 00:00:00 2001 From: Lightczx <1686188646@qq.com> Date: Thu, 20 Jun 2024 15:42:49 +0800 Subject: [PATCH] fix #1750 --- .../Snap.Hutao/Core/IO/FileOperation.cs | 11 ++++++++ .../Service/Game/Package/PackageConverter.cs | 26 ++++++------------- 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/src/Snap.Hutao/Snap.Hutao/Core/IO/FileOperation.cs b/src/Snap.Hutao/Snap.Hutao/Core/IO/FileOperation.cs index 83f8b2b4..7ea0f3b1 100644 --- a/src/Snap.Hutao/Snap.Hutao/Core/IO/FileOperation.cs +++ b/src/Snap.Hutao/Snap.Hutao/Core/IO/FileOperation.cs @@ -45,6 +45,17 @@ internal static class FileOperation return true; } + public static bool Delete(string path) + { + if (!File.Exists(path)) + { + return false; + } + + File.Delete(path); + return true; + } + public static unsafe bool UnsafeDelete(string path) { bool result = false; diff --git a/src/Snap.Hutao/Snap.Hutao/Service/Game/Package/PackageConverter.cs b/src/Snap.Hutao/Snap.Hutao/Service/Game/Package/PackageConverter.cs index ac3cac57..977609bc 100644 --- a/src/Snap.Hutao/Snap.Hutao/Service/Game/Package/PackageConverter.cs +++ b/src/Snap.Hutao/Snap.Hutao/Service/Game/Package/PackageConverter.cs @@ -81,31 +81,21 @@ internal sealed partial class PackageConverter public async ValueTask EnsureDeprecatedFilesAndSdkAsync(GameChannelSDK? channelSDK, DeprecatedFilesWrapper? deprecatedFiles, string gameFolder) { - string sdkDllBackup = Path.Combine(gameFolder, YuanShenData, "Plugins\\PCGameSDK.dll.backup"); - string sdkDll = Path.Combine(gameFolder, YuanShenData, "Plugins\\PCGameSDK.dll"); + // Just try to delete these files, always download from server when needed + FileOperation.Delete(Path.Combine(gameFolder, YuanShenData, "Plugins\\PCGameSDK.dll")); + FileOperation.Delete(Path.Combine(gameFolder, GenshinImpactData, "Plugins\\PCGameSDK.dll")); + FileOperation.Delete(Path.Combine(gameFolder, YuanShenData, "Plugins\\EOSSDK-Win64-Shipping.dll")); + FileOperation.Delete(Path.Combine(gameFolder, GenshinImpactData, "Plugins\\EOSSDK-Win64-Shipping.dll")); + FileOperation.Delete(Path.Combine(gameFolder, YuanShenData, "Plugins\\PluginEOSSDK.dll")); + FileOperation.Delete(Path.Combine(gameFolder, GenshinImpactData, "Plugins\\PluginEOSSDK.dll")); + FileOperation.Delete(Path.Combine(gameFolder, "sdk_pkg_version")); - string sdkVersionBackup = Path.Combine(gameFolder, "sdk_pkg_version.backup"); - string sdkVersion = Path.Combine(gameFolder, "sdk_pkg_version"); - - // Only bilibili's sdk is not null if (channelSDK is not null) { using (Stream sdkWebStream = await httpClient.GetStreamAsync(channelSDK.ChannelSdkPackage.Url).ConfigureAwait(false)) { ZipFile.ExtractToDirectory(sdkWebStream, gameFolder, true); } - - if (File.Exists(sdkDllBackup) && File.Exists(sdkVersionBackup)) - { - File.Delete(sdkDllBackup); - File.Delete(sdkVersionBackup); - } - } - else - { - // Backup - FileOperation.Move(sdkDll, sdkDllBackup, true); - FileOperation.Move(sdkVersion, sdkVersionBackup, true); } if (deprecatedFiles is not null)