@@ -186,7 +186,8 @@ private bool ClearLogFolder()
186
186
{
187
187
try
188
188
{
189
- dir . Delete ( true ) ;
189
+ // Log folders are the last level of folders
190
+ dir . Delete ( recursive : false ) ;
190
191
}
191
192
catch ( Exception e )
192
193
{
@@ -214,6 +215,7 @@ private bool ClearCacheFolder()
214
215
{
215
216
var success = true ;
216
217
var cacheDirectory = GetCacheDir ( ) ;
218
+ var pluginCacheDirectory = GetPluginCacheDir ( ) ;
217
219
var cacheFiles = GetCacheFiles ( ) ;
218
220
219
221
cacheFiles . ForEach ( f =>
@@ -229,13 +231,15 @@ private bool ClearCacheFolder()
229
231
}
230
232
} ) ;
231
233
232
- cacheDirectory . EnumerateDirectories ( "*" , SearchOption . TopDirectoryOnly )
234
+ // Firstly, delete plugin cache directories
235
+ pluginCacheDirectory . EnumerateDirectories ( "*" , SearchOption . TopDirectoryOnly )
233
236
. ToList ( )
234
237
. ForEach ( dir =>
235
238
{
236
239
try
237
240
{
238
- dir . Delete ( true ) ;
241
+ // Plugin may create directories in its cache directory
242
+ dir . Delete ( recursive : true ) ;
239
243
}
240
244
catch ( Exception e )
241
245
{
@@ -244,6 +248,18 @@ private bool ClearCacheFolder()
244
248
}
245
249
} ) ;
246
250
251
+ // Then, delete plugin directory
252
+ var dir = GetPluginCacheDir ( ) ;
253
+ try
254
+ {
255
+ dir . Delete ( recursive : false ) ;
256
+ }
257
+ catch ( Exception e )
258
+ {
259
+ App . API . LogException ( ClassName , $ "Failed to delete cache directory: { dir . Name } ", e ) ;
260
+ success = false ;
261
+ }
262
+
247
263
OnPropertyChanged ( nameof ( CacheFolderSize ) ) ;
248
264
249
265
return success ;
@@ -254,6 +270,11 @@ private static DirectoryInfo GetCacheDir()
254
270
return new DirectoryInfo ( DataLocation . CacheDirectory ) ;
255
271
}
256
272
273
+ private static DirectoryInfo GetPluginCacheDir ( )
274
+ {
275
+ return new DirectoryInfo ( DataLocation . PluginCacheDirectory ) ;
276
+ }
277
+
257
278
private static List < FileInfo > GetCacheFiles ( )
258
279
{
259
280
return GetCacheDir ( ) . EnumerateFiles ( "*" , SearchOption . AllDirectories ) . ToList ( ) ;
0 commit comments