@@ -863,31 +863,48 @@ public string CheckLogFolder
863
863
{
864
864
get
865
865
{
866
- var dirInfo = new DirectoryInfo ( Path . Combine ( DataLocation . DataDirectory ( ) , Constant . Logs , Constant . Version ) ) ;
867
- long size = dirInfo . EnumerateFiles ( "*" , SearchOption . AllDirectories ) . Sum ( file => file . Length ) ;
868
-
869
- return _translater . GetTranslation ( "clearlogfolder" ) + " (" + FormatBytes ( size ) + ")" ;
866
+ var logFiles = GetLogFiles ( ) ;
867
+ long size = logFiles . Sum ( file => file . Length ) ;
868
+ return string . Format ( "{0} ({1})" , _translater . GetTranslation ( "clearlogfolder" ) , BytesToReadableString ( size ) ) ;
870
869
}
871
870
}
872
871
872
+ private static DirectoryInfo GetLogDir ( string version = "" )
873
+ {
874
+ return new DirectoryInfo ( Path . Combine ( DataLocation . DataDirectory ( ) , Constant . Logs , version ) ) ;
875
+ }
876
+
877
+ private static List < FileInfo > GetLogFiles ( string version = "" )
878
+ {
879
+ return GetLogDir ( version ) . EnumerateFiles ( "*" , SearchOption . AllDirectories ) . ToList ( ) ;
880
+ }
881
+
873
882
internal void ClearLogFolder ( )
874
883
{
875
- var directory = new DirectoryInfo (
876
- Path . Combine (
877
- DataLocation . DataDirectory ( ) ,
878
- Constant . Logs ,
879
- Constant . Version ) ) ;
884
+ var logDirectory = GetLogDir ( ) ;
885
+ var logFiles = GetLogFiles ( ) ;
880
886
881
- directory . EnumerateFiles ( )
887
+ logFiles . ForEach ( f => f . Delete ( ) ) ;
888
+
889
+ logDirectory . EnumerateDirectories ( "*" , SearchOption . TopDirectoryOnly )
890
+ . Where ( dir => ! Constant . Version . Equals ( dir . Name ) )
882
891
. ToList ( )
883
- . ForEach ( x => x . Delete ( ) ) ;
892
+ . ForEach ( dir => dir . Delete ( ) ) ;
893
+
894
+ OnPropertyChanged ( nameof ( CheckLogFolder ) ) ;
895
+ }
896
+
897
+ internal void OpenLogFolder ( )
898
+ {
899
+ App . API . OpenDirectory ( GetLogDir ( Constant . Version ) . FullName ) ;
884
900
}
885
- internal string FormatBytes ( long bytes )
901
+
902
+ internal static string BytesToReadableString ( long bytes )
886
903
{
887
904
const int scale = 1024 ;
888
905
string [ ] orders = new string [ ]
889
906
{
890
- "GB" , "MB" , "KB" , "Bytes "
907
+ "GB" , "MB" , "KB" , "B "
891
908
} ;
892
909
long max = ( long ) Math . Pow ( scale , orders . Length - 1 ) ;
893
910
@@ -898,7 +915,7 @@ internal string FormatBytes(long bytes)
898
915
899
916
max /= scale ;
900
917
}
901
- return "0 Bytes " ;
918
+ return "0 B " ;
902
919
}
903
920
904
921
#endregion
0 commit comments