Some fixes for backup size calculations
This commit is contained in:
@@ -118,7 +118,8 @@ Public Class mgrBackup
|
||||
Dim sSavePath As String
|
||||
Dim sOverwriteMessage As String
|
||||
Dim lAvailableSpace As Long
|
||||
Dim lFolderSize As Long
|
||||
Dim lFolderSize As Long = 0
|
||||
Dim sDeepFolder As String
|
||||
|
||||
If oSettings.CreateSubFolder Then sBackupFile = sBackupFile & Path.DirectorySeparatorChar & GetFileName(oGame)
|
||||
sBackupFile = sBackupFile & Path.DirectorySeparatorChar & GetFileName(oGame) & ".7z"
|
||||
@@ -128,7 +129,18 @@ Public Class mgrBackup
|
||||
|
||||
'Calculate space
|
||||
lAvailableSpace = mgrCommon.GetAvailableDiskSpace(oSettings.BackupFolder)
|
||||
lFolderSize = mgrCommon.GetFolderSize(sSavePath, oGame.IncludeArray, oGame.ExcludeArray, oGame.RecurseSubFolders)
|
||||
'If any includes are using a deep path and we aren't using recursion, we need to go directly to folders to do file size calculations or they will be missed.
|
||||
If Not oGame.RecurseSubFolders Then
|
||||
For Each s As String In oGame.IncludeArray
|
||||
If s.Contains(Path.DirectorySeparatorChar) Then
|
||||
sDeepFolder = Path.GetDirectoryName(sSavePath & Path.DirectorySeparatorChar & s)
|
||||
If Directory.Exists(sDeepFolder) Then
|
||||
lFolderSize += mgrCommon.GetFolderSize(sDeepFolder, oGame.IncludeArray, oGame.ExcludeArray, oGame.RecurseSubFolders)
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
lFolderSize += mgrCommon.GetFolderSize(sSavePath, oGame.IncludeArray, oGame.ExcludeArray, oGame.RecurseSubFolders)
|
||||
|
||||
'Show Available Space
|
||||
RaiseEvent UpdateLog(mgrCommon.FormatString(mgrCommon_AvailableDiskSpace, mgrCommon.FormatDiskSpace(lAvailableSpace)), False, ToolTipIcon.Info, True)
|
||||
|
||||
@@ -293,14 +293,15 @@ Public Class mgrCommon
|
||||
|
||||
Public Shared Function WildcardToRegex(ByVal sPattern As String) As String
|
||||
Dim sRegEx As String
|
||||
sRegEx = sPattern.Replace("*", ".*")
|
||||
sRegEx = sRegEx.Replace("?", ".")
|
||||
sPattern = Regex.Escape(sPattern)
|
||||
sRegEx = sPattern.Replace("\*", ".*")
|
||||
sRegEx = sRegEx.Replace("\?", ".")
|
||||
Return sRegEx
|
||||
End Function
|
||||
|
||||
Public Shared Function CompareValueToArrayRegEx(ByVal sValue As String, ByVal sValues As String()) As Boolean
|
||||
For Each se As String In sValues
|
||||
If Regex.IsMatch(sValue, Regex.Escape(WildcardToRegex(se))) Then
|
||||
If Regex.IsMatch(sValue, WildcardToRegex(se)) Then
|
||||
Return True
|
||||
End If
|
||||
Next
|
||||
@@ -331,6 +332,7 @@ Public Class mgrCommon
|
||||
|
||||
'Files
|
||||
For Each fi As FileInfo In oFolder.EnumerateFiles()
|
||||
|
||||
If sInclude.Length > 0 Then
|
||||
bInclude = CompareValueToArrayRegEx(fi.FullName, sInclude)
|
||||
Else
|
||||
|
||||
Reference in New Issue
Block a user