From a02162f76d882ed61bf2accbe97f283eecb1f940 Mon Sep 17 00:00:00 2001 From: qhy040404 Date: Fri, 5 Jan 2024 23:15:08 +0800 Subject: [PATCH] refresh data folder size after deleting server cache --- .../ViewModel/Setting/FolderViewModel.cs | 35 +++++++++++-------- .../ViewModel/Setting/SettingViewModel.cs | 1 + 2 files changed, 22 insertions(+), 14 deletions(-) diff --git a/src/Snap.Hutao/Snap.Hutao/ViewModel/Setting/FolderViewModel.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/Setting/FolderViewModel.cs index 14a69c72..51122368 100644 --- a/src/Snap.Hutao/Snap.Hutao/ViewModel/Setting/FolderViewModel.cs +++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/Setting/FolderViewModel.cs @@ -10,37 +10,44 @@ namespace Snap.Hutao.ViewModel.Setting; internal sealed partial class FolderViewModel : ObservableObject { + private readonly ITaskContext taskContext; private readonly string folder; private string? size; public FolderViewModel(ITaskContext taskContext, string folder) { + this.taskContext = taskContext; this.folder = folder; SetFolderSizeAsync().SafeForget(); - - async ValueTask SetFolderSizeAsync() - { - await taskContext.SwitchToBackgroundAsync(); - long totalSize = 0; - - foreach (string file in Directory.EnumerateFiles(folder, "*.*", SearchOption.AllDirectories)) - { - totalSize += new FileInfo(file).Length; - } - - await taskContext.SwitchToMainThreadAsync(); - Size = SH.FormatViewModelSettingFolderSizeDescription(Converters.ToFileSizeString(totalSize)); - } } public string Folder { get => folder; } public string? Size { get => size; set => SetProperty(ref size, value); } + public async ValueTask RefreshFolderSizeAsync() + { + await SetFolderSizeAsync().ConfigureAwait(false); + } + [Command("OpenFolderCommand")] private async Task OpenDataFolderAsync() { await Launcher.LaunchFolderPathAsync(folder); } + + private async ValueTask SetFolderSizeAsync() + { + await taskContext.SwitchToBackgroundAsync(); + long totalSize = 0; + + foreach (string file in Directory.EnumerateFiles(folder, "*.*", SearchOption.AllDirectories)) + { + totalSize += new FileInfo(file).Length; + } + + await taskContext.SwitchToMainThreadAsync(); + Size = SH.FormatViewModelSettingFolderSizeDescription(Converters.ToFileSizeString(totalSize)); + } } \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/ViewModel/Setting/SettingViewModel.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/Setting/SettingViewModel.cs index cfcb4662..b51f3830 100644 --- a/src/Snap.Hutao/Snap.Hutao/ViewModel/Setting/SettingViewModel.cs +++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/Setting/SettingViewModel.cs @@ -284,6 +284,7 @@ internal sealed partial class SettingViewModel : Abstraction.ViewModel Directory.Delete(cacheFolder, true); } + DataFolderView?.RefreshFolderSizeAsync().SafeForget(); infoBarService.Information(SH.ViewModelSettingActionComplete); } }