mirror of
https://jihulab.com/DGP-Studio/Snap.Hutao.git
synced 2025-11-19 21:02:53 +08:00
Compare commits
1 Commits
feat/1100
...
feat/refre
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a02162f76d |
@@ -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));
|
||||
}
|
||||
}
|
||||
@@ -284,6 +284,7 @@ internal sealed partial class SettingViewModel : Abstraction.ViewModel
|
||||
Directory.Delete(cacheFolder, true);
|
||||
}
|
||||
|
||||
DataFolderView?.RefreshFolderSizeAsync().SafeForget();
|
||||
infoBarService.Information(SH.ViewModelSettingActionComplete);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user