@@ -100,35 +100,41 @@ private bool ClearCacheFolder()
100
100
}
101
101
} ) ;
102
102
103
- // Firstly, delete plugin cache directories
104
- pluginCacheDirectory . EnumerateDirectories ( "*" , SearchOption . TopDirectoryOnly )
105
- . ToList ( )
106
- . ForEach ( dir =>
107
- {
108
- try
109
- {
110
- // Plugin may create directories in its cache directory
111
- dir . Delete ( recursive : true ) ;
112
- }
113
- catch ( Exception e )
114
- {
115
- App . API . LogException ( ClassName , $ "Failed to delete cache directory: { dir . Name } ", e ) ;
116
- success = false ;
117
- }
118
- } ) ;
119
-
120
- // Then, delete plugin directory
121
- var dir = GetPluginCacheDir ( ) ;
122
- try
103
+ // Check if plugin cache directory exists before attempting to delete
104
+ // Or it will throw DirectoryNotFoundException in `pluginCacheDirectory.EnumerateDirectories`
105
+ if ( pluginCacheDirectory . Exists )
123
106
{
124
- dir . Delete ( recursive : false ) ;
125
- }
126
- catch ( Exception e )
127
- {
128
- App . API . LogException ( ClassName , $ "Failed to delete cache directory: { dir . Name } ", e ) ;
129
- success = false ;
107
+ // Firstly, delete plugin cache directories
108
+ pluginCacheDirectory . EnumerateDirectories ( "*" , SearchOption . TopDirectoryOnly )
109
+ . ToList ( )
110
+ . ForEach ( dir =>
111
+ {
112
+ try
113
+ {
114
+ // Plugin may create directories in its cache directory
115
+ dir . Delete ( recursive : true ) ;
116
+ }
117
+ catch ( Exception e )
118
+ {
119
+ App . API . LogException ( ClassName , $ "Failed to delete cache directory: { dir . Name } ", e ) ;
120
+ success = false ;
121
+ }
122
+ } ) ;
123
+
124
+ // Then, delete plugin directory
125
+ var dir = pluginCacheDirectory ;
126
+ try
127
+ {
128
+ dir . Delete ( recursive : false ) ;
129
+ }
130
+ catch ( Exception e )
131
+ {
132
+ App . API . LogException ( ClassName , $ "Failed to delete cache directory: { dir . Name } ", e ) ;
133
+ success = false ;
134
+ }
130
135
}
131
136
137
+ // Raise regardless to cover scenario where size needs to be recalculated if the folder is manually removed on disk.
132
138
OnPropertyChanged ( nameof ( CacheFolderSize ) ) ;
133
139
134
140
return success ;
0 commit comments