refresh data folder size after deleting server cache

This commit is contained in:
qhy040404
2024-01-05 23:50:28 +08:00
parent da80631b72
commit 061aba715b
2 changed files with 21 additions and 14 deletions

View File

@@ -10,34 +10,36 @@ 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 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));
}
[Command("OpenFolderCommand")]
private async Task OpenDataFolderAsync()
{

View File

@@ -284,6 +284,11 @@ internal sealed partial class SettingViewModel : Abstraction.ViewModel
Directory.Delete(cacheFolder, true);
}
if (DataFolderView is not null)
{
await DataFolderView.SetFolderSizeAsync().ConfigureAwait(false);
}
infoBarService.Information(SH.ViewModelSettingActionComplete);
}
}