@@ -27,6 +27,15 @@ public string LogFolderSize
27
27
}
28
28
}
29
29
30
+ public string CacheFolderSize
31
+ {
32
+ get
33
+ {
34
+ var size = GetCacheFiles ( ) . Sum ( file => file . Length ) ;
35
+ return $ "{ App . API . GetTranslation ( "clearcachefolder" ) } ({ BytesToReadableString ( size ) } )";
36
+ }
37
+ }
38
+
30
39
public string Website => Constant . Website ;
31
40
public string SponsorPage => Constant . SponsorPage ;
32
41
public string ReleaseNotes => _updater . GitHubRepository + "/releases/latest" ;
@@ -98,6 +107,21 @@ private void AskClearLogFolderConfirmation()
98
107
}
99
108
}
100
109
110
+ [ RelayCommand ]
111
+ private void AskClearCacheFolderConfirmation ( )
112
+ {
113
+ var confirmResult = App . API . ShowMsgBox (
114
+ App . API . GetTranslation ( "clearcachefolderMessage" ) ,
115
+ App . API . GetTranslation ( "clearcachefolder" ) ,
116
+ MessageBoxButton . YesNo
117
+ ) ;
118
+
119
+ if ( confirmResult == MessageBoxResult . Yes )
120
+ {
121
+ ClearCacheFolder ( ) ;
122
+ }
123
+ }
124
+
101
125
[ RelayCommand ]
102
126
private void OpenSettingsFolder ( )
103
127
{
@@ -112,7 +136,6 @@ private void OpenParentOfSettingsFolder(object parameter)
112
136
App . API . OpenDirectory ( parentFolderPath ) ;
113
137
}
114
138
115
-
116
139
[ RelayCommand ]
117
140
private void OpenLogsFolder ( )
118
141
{
@@ -147,6 +170,30 @@ private static List<FileInfo> GetLogFiles(string version = "")
147
170
return GetLogDir ( version ) . EnumerateFiles ( "*" , SearchOption . AllDirectories ) . ToList ( ) ;
148
171
}
149
172
173
+ private void ClearCacheFolder ( )
174
+ {
175
+ var cacheDirectory = GetCacheDir ( ) ;
176
+ var cacheFiles = GetCacheFiles ( ) ;
177
+
178
+ cacheFiles . ForEach ( f => f . Delete ( ) ) ;
179
+
180
+ cacheDirectory . EnumerateDirectories ( "*" , SearchOption . TopDirectoryOnly )
181
+ . ToList ( )
182
+ . ForEach ( dir => dir . Delete ( true ) ) ;
183
+
184
+ OnPropertyChanged ( nameof ( CacheFolderSize ) ) ;
185
+ }
186
+
187
+ private static DirectoryInfo GetCacheDir ( )
188
+ {
189
+ return new DirectoryInfo ( DataLocation . CacheDirectory ) ;
190
+ }
191
+
192
+ private static List < FileInfo > GetCacheFiles ( )
193
+ {
194
+ return GetCacheDir ( ) . EnumerateFiles ( "*" , SearchOption . AllDirectories ) . ToList ( ) ;
195
+ }
196
+
150
197
private static string BytesToReadableString ( long bytes )
151
198
{
152
199
const int scale = 1024 ;
0 commit comments