@@ -231,35 +231,41 @@ private bool ClearCacheFolder()
231
231
}
232
232
} ) ;
233
233
234
- // Firstly, delete plugin cache directories
235
- pluginCacheDirectory . EnumerateDirectories ( "*" , SearchOption . TopDirectoryOnly )
236
- . ToList ( )
237
- . ForEach ( dir =>
238
- {
239
- try
240
- {
241
- // Plugin may create directories in its cache directory
242
- dir . Delete ( recursive : true ) ;
243
- }
244
- catch ( Exception e )
245
- {
246
- App . API . LogException ( ClassName , $ "Failed to delete cache directory: { dir . Name } ", e ) ;
247
- success = false ;
248
- }
249
- } ) ;
250
-
251
- // Then, delete plugin directory
252
- var dir = GetPluginCacheDir ( ) ;
253
- try
254
- {
255
- dir . Delete ( recursive : false ) ;
256
- }
257
- catch ( Exception e )
234
+ // Check if plugin cache directory exists before attempting to delete
235
+ // Or it will throw DirectoryNotFoundException in `pluginCacheDirectory.EnumerateDirectories`
236
+ if ( pluginCacheDirectory . Exists )
258
237
{
259
- App . API . LogException ( ClassName , $ "Failed to delete cache directory: { dir . Name } ", e ) ;
260
- success = false ;
238
+ // Firstly, delete plugin cache directories
239
+ pluginCacheDirectory . EnumerateDirectories ( "*" , SearchOption . TopDirectoryOnly )
240
+ . ToList ( )
241
+ . ForEach ( dir =>
242
+ {
243
+ try
244
+ {
245
+ // Plugin may create directories in its cache directory
246
+ dir . Delete ( recursive : true ) ;
247
+ }
248
+ catch ( Exception e )
249
+ {
250
+ App . API . LogException ( ClassName , $ "Failed to delete cache directory: { dir . Name } ", e ) ;
251
+ success = false ;
252
+ }
253
+ } ) ;
254
+
255
+ // Then, delete plugin directory
256
+ var dir = pluginCacheDirectory ;
257
+ try
258
+ {
259
+ dir . Delete ( recursive : false ) ;
260
+ }
261
+ catch ( Exception e )
262
+ {
263
+ App . API . LogException ( ClassName , $ "Failed to delete cache directory: { dir . Name } ", e ) ;
264
+ success = false ;
265
+ }
261
266
}
262
267
268
+ // Raise regardless to cover scenario where size needs to be recalculated if the folder is manually removed on disk.
263
269
OnPropertyChanged ( nameof ( CacheFolderSize ) ) ;
264
270
265
271
return success ;
0 commit comments