Compare commits

...

1 Commits

Author SHA1 Message Date
qhy040404
a02162f76d refresh data folder size after deleting server cache 2024-01-05 23:30:16 +08:00
2 changed files with 22 additions and 14 deletions

View File

@@ -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));
}
}

View File

@@ -284,6 +284,7 @@ internal sealed partial class SettingViewModel : Abstraction.ViewModel
Directory.Delete(cacheFolder, true);
}
DataFolderView?.RefreshFolderSizeAsync().SafeForget();
infoBarService.Information(SH.ViewModelSettingActionComplete);
}
}