diff --git a/src/Snap.Hutao/Snap.Hutao/Core/Setting/SettingKeys.cs b/src/Snap.Hutao/Snap.Hutao/Core/Setting/SettingKeys.cs index f81c61c8..db6749c2 100644 --- a/src/Snap.Hutao/Snap.Hutao/Core/Setting/SettingKeys.cs +++ b/src/Snap.Hutao/Snap.Hutao/Core/Setting/SettingKeys.cs @@ -56,6 +56,7 @@ internal static class SettingKeys public const string SuppressMetadataInitialization = "SuppressMetadataInitialization"; public const string OverrideElevationRequirement = "OverrideElevationRequirement"; public const string OverrideUpdateVersionComparison = "OverrideUpdateVersionComparison"; + public const string OverridePackageConvertDirectoryPermissionsRequirement = "OverridePackageConvertDirectoryPermissionsRequirement"; #endregion #region Obsolete diff --git a/src/Snap.Hutao/Snap.Hutao/Service/Game/Launching/Handler/LaunchExecutionEnsureGameResourceHandler.cs b/src/Snap.Hutao/Snap.Hutao/Service/Game/Launching/Handler/LaunchExecutionEnsureGameResourceHandler.cs index 7d5d2da3..6430b162 100644 --- a/src/Snap.Hutao/Snap.Hutao/Service/Game/Launching/Handler/LaunchExecutionEnsureGameResourceHandler.cs +++ b/src/Snap.Hutao/Snap.Hutao/Service/Game/Launching/Handler/LaunchExecutionEnsureGameResourceHandler.cs @@ -3,6 +3,7 @@ using Microsoft.Win32.SafeHandles; using Snap.Hutao.Control.Extension; +using Snap.Hutao.Core.Setting; using Snap.Hutao.Factory.ContentDialog; using Snap.Hutao.Factory.Progress; using Snap.Hutao.Model.Intrinsic; @@ -124,6 +125,11 @@ internal sealed class LaunchExecutionEnsureGameResourceHandler : ILaunchExecutio private static bool CheckDirectoryPermissions(string folder) { + if (LocalSetting.Get(SettingKeys.OverridePackageConvertDirectoryPermissionsRequirement, false)) + { + return true; + } + // Program Files has special permissions limitation. string programFiles = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles); if (folder.StartsWith(programFiles, StringComparison.OrdinalIgnoreCase)) diff --git a/src/Snap.Hutao/Snap.Hutao/View/Page/TestPage.xaml b/src/Snap.Hutao/Snap.Hutao/View/Page/TestPage.xaml index 80cb344f..581fe913 100644 --- a/src/Snap.Hutao/Snap.Hutao/View/Page/TestPage.xaml +++ b/src/Snap.Hutao/Snap.Hutao/View/Page/TestPage.xaml @@ -103,6 +103,10 @@ + + + + LocalSetting.Set(SettingKeys.OverrideUpdateVersionComparison, value); } + public bool OverridePackageConvertDirectoryPermissionsRequirement + { + get => LocalSetting.Get(SettingKeys.OverridePackageConvertDirectoryPermissionsRequirement, false); + set => LocalSetting.Set(SettingKeys.OverridePackageConvertDirectoryPermissionsRequirement, value); + } + [Command("ResetGuideStateCommand")] private static void ResetGuideState() {