mirror of
https://jihulab.com/DGP-Studio/Snap.Hutao.git
synced 2025-11-19 21:02:53 +08:00
refresh data folder size after deleting server cache
This commit is contained in:
@@ -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()
|
||||
{
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user