Fix clean cache issue

This commit is contained in:
Jack251970 2025-04-30 19:21:59 +08:00
parent f45e6ac1d5
commit a9641505b6

View file

@ -186,6 +186,7 @@ public partial class SettingsPaneAboutViewModel : BaseModel
{
try
{
// Make sure directory clean
dir.Delete(true);
}
catch (Exception e)
@ -214,6 +215,7 @@ public partial class SettingsPaneAboutViewModel : BaseModel
{
var success = true;
var cacheDirectory = GetCacheDir();
var pluginCacheDirectory = GetPluginCacheDir();
var cacheFiles = GetCacheFiles();
cacheFiles.ForEach(f =>
@ -229,12 +231,31 @@ public partial class SettingsPaneAboutViewModel : BaseModel
}
});
// Firstly, delete plugin cache directories
pluginCacheDirectory.EnumerateDirectories("*", SearchOption.TopDirectoryOnly)
.ToList()
.ForEach(dir =>
{
try
{
// Plugin may create directories in its cache directory
dir.Delete(true);
}
catch (Exception e)
{
App.API.LogException(ClassName, $"Failed to delete cache directory: {dir.Name}", e);
success = false;
}
});
// Then, delete plugin directory
cacheDirectory.EnumerateDirectories("*", SearchOption.TopDirectoryOnly)
.ToList()
.ForEach(dir =>
{
try
{
// Make sure directory clean
dir.Delete(true);
}
catch (Exception e)
@ -254,6 +275,11 @@ public partial class SettingsPaneAboutViewModel : BaseModel
return new DirectoryInfo(DataLocation.CacheDirectory);
}
private static DirectoryInfo GetPluginCacheDir()
{
return new DirectoryInfo(DataLocation.PluginCacheDirectory);
}
private static List<FileInfo> GetCacheFiles()
{
return GetCacheDir().EnumerateFiles("*", SearchOption.AllDirectories).ToList();