Added new 7z functionality
This commit is contained in:
+14
-7
@@ -811,13 +811,6 @@ Public Class frmMain
|
||||
|
||||
Private Sub LoadAndVerify()
|
||||
|
||||
'The application cannot continue if this fails
|
||||
If Not oBackup.CheckForUtilities(mgrPath.Utility7zLocation) Then
|
||||
mgrCommon.ShowMessage(frmMain_Error7zip, MsgBoxStyle.Critical)
|
||||
bShutdown = True
|
||||
Me.Close()
|
||||
End If
|
||||
|
||||
'Local Database Check
|
||||
VerifyDBVersion(mgrSQLite.Database.Local)
|
||||
LocalDatabaseCheck()
|
||||
@@ -855,6 +848,20 @@ Public Class frmMain
|
||||
End If
|
||||
End If
|
||||
|
||||
'Check for any custom 7z utility and display a warning if it's missing
|
||||
If oSettings.Custom7zLocation <> String.Empty Then
|
||||
If Not oBackup.CheckForUtilities(oSettings.Custom7zLocation) Then
|
||||
mgrCommon.ShowMessage(frmMain_Error7zCustom, oSettings.Custom7zLocation, MsgBoxStyle.Exclamation)
|
||||
End If
|
||||
End If
|
||||
|
||||
'If the default utility is missing we cannot continue
|
||||
If Not oBackup.CheckForUtilities(mgrPath.Default7zLocation) Then
|
||||
mgrCommon.ShowMessage(frmMain_Error7zip, MsgBoxStyle.Critical)
|
||||
bShutdown = True
|
||||
Me.Close()
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
'Functions that handle buttons, menus and other GUI features on this form
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
Imports GBM.My.Resources
|
||||
Imports System.IO
|
||||
|
||||
Public Class frmSettings
|
||||
Dim bShutdown As Boolean = False
|
||||
@@ -83,10 +84,13 @@ Public Class frmSettings
|
||||
oSettings.SupressBackup = chkSupressBackup.Checked
|
||||
oSettings.SupressBackupThreshold = nudSupressBackupThreshold.Value
|
||||
oSettings.CompressionLevel = cboCompression.SelectedValue
|
||||
oSettings.Custom7zArguments = txt7zArguments.Text
|
||||
|
||||
'TODO: Add Custom Location Validation!
|
||||
oSettings.Custom7zLocation = txt7zLocation.Text
|
||||
If oSettings.Custom7zArguments <> txt7zArguments.Text.Trim And txt7zArguments.Text.Trim <> String.Empty Then
|
||||
mgrCommon.ShowMessage(frmSettings_WarningArguments, MsgBoxStyle.Exclamation)
|
||||
End If
|
||||
|
||||
oSettings.Custom7zArguments = txt7zArguments.Text.Trim
|
||||
oSettings.Custom7zLocation = txt7zLocation.Text.Trim
|
||||
|
||||
'We need to clear all checksums its turned off
|
||||
If chkCheckSum.Checked = False And oSettings.CheckSum = True Then
|
||||
@@ -105,7 +109,7 @@ Public Class frmSettings
|
||||
oSettings.SyncTags = chkSyncTags.Checked
|
||||
oSettings.SyncAll = chkSyncAll.Checked
|
||||
|
||||
If IO.Directory.Exists(txtBackupFolder.Text) Then
|
||||
If Directory.Exists(txtBackupFolder.Text) Then
|
||||
If oSettings.BackupFolder <> txtBackupFolder.Text Then
|
||||
If chkSync.Checked Then bBackupLocationChanged = True
|
||||
End If
|
||||
@@ -115,8 +119,15 @@ Public Class frmSettings
|
||||
Return False
|
||||
End If
|
||||
|
||||
If oSettings.Custom7zArguments <> String.Empty Then
|
||||
mgrCommon.ShowMessage(frmSettings_WarningArguments, MsgBoxStyle.Exclamation)
|
||||
If oSettings.Custom7zLocation <> String.Empty Then
|
||||
If File.Exists(oSettings.Custom7zLocation) Then
|
||||
If Path.GetFileNameWithoutExtension(oSettings.Custom7zLocation) <> "7za" Then
|
||||
mgrCommon.ShowMessage(frmSettings_WarningLocation, MsgBoxStyle.Exclamation)
|
||||
End If
|
||||
Else
|
||||
mgrCommon.ShowMessage(frmSettings_ErrorLocation, oSettings.Custom7zLocation, MsgBoxStyle.Critical)
|
||||
Return False
|
||||
End If
|
||||
End If
|
||||
|
||||
Return True
|
||||
@@ -137,7 +148,7 @@ Public Class frmSettings
|
||||
Try
|
||||
'Use default when no custom location is set
|
||||
If sLocation = String.Empty Then
|
||||
sLocation = mgrPath.Utility7zLocation
|
||||
sLocation = mgrPath.Default7zLocation
|
||||
End If
|
||||
|
||||
'Get info
|
||||
@@ -146,9 +157,17 @@ Public Class frmSettings
|
||||
lbl7zCopyright.Text = oFileInfo.LegalCopyright
|
||||
Catch ex As Exception
|
||||
lbl7zProduct.Text = mgrCommon.FormatString(frmSettings_Error7zInfo)
|
||||
lbl7zCopyright.Text = String.Empty
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Private Sub SetDefaults()
|
||||
If mgrCommon.ShowMessage(frmSettings_ConfirmDefaults, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
|
||||
oSettings = New mgrSettings
|
||||
LoadSettings()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub LoadSettings()
|
||||
chkStartWindows.Checked = oSettings.StartWithWindows
|
||||
chkMonitorOnStartup.Checked = oSettings.MonitorOnStartup
|
||||
@@ -298,6 +317,10 @@ Public Class frmSettings
|
||||
End Sub
|
||||
|
||||
Private Sub txt7zLocation_Leave(sender As Object, e As EventArgs) Handles txt7zLocation.Leave
|
||||
Get7zInfo(txt7zLocation.Text)
|
||||
Get7zInfo(txt7zLocation.Text.Trim)
|
||||
End Sub
|
||||
|
||||
Private Sub btnDefaults_Click(sender As Object, e As EventArgs) Handles btnDefaults.Click
|
||||
SetDefaults()
|
||||
End Sub
|
||||
End Class
|
||||
@@ -169,20 +169,15 @@ Public Class mgrBackup
|
||||
BuildFileList(sSavePath, oGame.ExcludeList, mgrPath.ExcludeFileLocation)
|
||||
|
||||
Try
|
||||
'Need to delete any prior archive if it exists, the 7za utility does not support overwriting or deleting existing archives.
|
||||
'If we let 7za update existing archives it will lead to excessive bloat with games that routinely add and remove files with many different file names.
|
||||
If File.Exists(sBackupFile) Then
|
||||
File.Delete(sBackupFile)
|
||||
End If
|
||||
|
||||
If Directory.Exists(sSavePath) Then
|
||||
'The Linux version of 7za doesn't support the new verbose parameters and fails out. Just split this up for now until we have a better solution.
|
||||
If mgrCommon.IsUnix Then
|
||||
prs7z.StartInfo.Arguments = "a -t7z -mx" & oSettings.CompressionLevel & " -i@""" & mgrPath.IncludeFileLocation & """ -x@""" & mgrPath.ExcludeFileLocation & """ """ & sBackupFile & """ -r"
|
||||
Else
|
||||
prs7z.StartInfo.Arguments = "a -bb1 -bt -t7z -mx" & oSettings.CompressionLevel & " -i@""" & mgrPath.IncludeFileLocation & """ -x@""" & mgrPath.ExcludeFileLocation & """ """ & sBackupFile & """ -r"
|
||||
'Need to delete any prior archive if it exists, the 7za utility does not support overwriting or deleting existing archives.
|
||||
'If we let 7za update existing archives it will lead to excessive bloat with games that routinely add and remove files with many different file names.
|
||||
If File.Exists(sBackupFile) Then
|
||||
File.Delete(sBackupFile)
|
||||
End If
|
||||
prs7z.StartInfo.FileName = mgrPath.Utility7zLocation
|
||||
|
||||
prs7z.StartInfo.Arguments = "a" & oSettings.Prepared7zArguments & "-t7z -mx" & oSettings.CompressionLevel & " -i@""" & mgrPath.IncludeFileLocation & """ -x@""" & mgrPath.ExcludeFileLocation & """ """ & sBackupFile & """ -r"
|
||||
prs7z.StartInfo.FileName = oSettings.Utility7zLocation
|
||||
prs7z.StartInfo.UseShellExecute = False
|
||||
prs7z.StartInfo.RedirectStandardOutput = True
|
||||
prs7z.StartInfo.CreateNoWindow = True
|
||||
|
||||
@@ -37,7 +37,7 @@ Public Class mgrPath
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Shared ReadOnly Property Utility7zLocation As String
|
||||
Shared ReadOnly Property Default7zLocation As String
|
||||
Get
|
||||
If mgrCommon.IsUnix Then
|
||||
Return "/usr/bin/7za"
|
||||
|
||||
@@ -231,12 +231,8 @@ Public Class mgrRestore
|
||||
|
||||
Try
|
||||
If File.Exists(sBackupFile) Then
|
||||
If mgrCommon.IsUnix Then
|
||||
prs7z.StartInfo.Arguments = "x """ & sBackupFile & """ -o""" & sExtractPath & Path.DirectorySeparatorChar & """ -aoa -r"
|
||||
Else
|
||||
prs7z.StartInfo.Arguments = "x -bb1 -bt """ & sBackupFile & """ -o""" & sExtractPath & Path.DirectorySeparatorChar & """ -aoa -r"
|
||||
End If
|
||||
prs7z.StartInfo.FileName = mgrPath.Utility7zLocation
|
||||
prs7z.StartInfo.Arguments = "x" & oSettings.Prepared7zArguments & """" & sBackupFile & """ -o""" & sExtractPath & Path.DirectorySeparatorChar & """ -aoa -r"
|
||||
prs7z.StartInfo.FileName = oSettings.Utility7zLocation
|
||||
prs7z.StartInfo.UseShellExecute = False
|
||||
prs7z.StartInfo.RedirectStandardOutput = True
|
||||
prs7z.StartInfo.CreateNoWindow = True
|
||||
|
||||
@@ -204,6 +204,21 @@ Public Class mgrSettings
|
||||
End Set
|
||||
End Property
|
||||
|
||||
ReadOnly Property Prepared7zArguments As String
|
||||
Get
|
||||
'Prepare custom 7z arguments
|
||||
Dim sPreparedArguments As String
|
||||
If s7zArguments <> String.Empty Then
|
||||
'Surround the arguments with spaces to be inserted into command
|
||||
sPreparedArguments = " " & s7zArguments & " "
|
||||
Else
|
||||
'The command always needs at least one space inserted
|
||||
sPreparedArguments = " "
|
||||
End If
|
||||
Return sPreparedArguments
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Property Custom7zLocation As String
|
||||
Get
|
||||
Return s7zLocation
|
||||
@@ -213,6 +228,22 @@ Public Class mgrSettings
|
||||
End Set
|
||||
End Property
|
||||
|
||||
ReadOnly Property Utility7zLocation As String
|
||||
Get
|
||||
'Return default utility when custom setting is not used
|
||||
If s7zLocation = String.Empty Then
|
||||
Return mgrPath.Default7zLocation
|
||||
Else
|
||||
'Check if custom utility is available, if not use the default utility
|
||||
If File.Exists(s7zLocation) Then
|
||||
Return s7zLocation
|
||||
Else
|
||||
Return mgrPath.Default7zLocation
|
||||
End If
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Property BackupFolder As String
|
||||
Get
|
||||
Return sBackupFolder
|
||||
|
||||
Generated
+37
-1
@@ -2310,6 +2310,15 @@ Namespace My.Resources
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Looks up a localized string similar to The custom 7-Zip utility could not be found at:[BR][BR][PARAM][BR][BR]Please check your settings, the default 7-Zip utility will be used..
|
||||
'''</summary>
|
||||
Friend ReadOnly Property frmMain_Error7zCustom() As String
|
||||
Get
|
||||
Return ResourceManager.GetString("frmMain_Error7zCustom", resourceCulture)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Looks up a localized string similar to 7-Zip was not found. The application cannot continue..
|
||||
'''</summary>
|
||||
@@ -3327,6 +3336,15 @@ Namespace My.Resources
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Looks up a localized string similar to Do you want to revert all settings to their defaults?.
|
||||
'''</summary>
|
||||
Friend ReadOnly Property frmSettings_ConfirmDefaults() As String
|
||||
Get
|
||||
Return ResourceManager.GetString("frmSettings_ConfirmDefaults", resourceCulture)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Looks up a localized string similar to Unable to retrieve 7z product information!.
|
||||
'''</summary>
|
||||
@@ -3345,6 +3363,15 @@ Namespace My.Resources
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Looks up a localized string similar to The custom 7-Zip location [PARAM] does not exist..
|
||||
'''</summary>
|
||||
Friend ReadOnly Property frmSettings_ErrorLocation() As String
|
||||
Get
|
||||
Return ResourceManager.GetString("frmSettings_ErrorLocation", resourceCulture)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Looks up a localized string similar to Settings.
|
||||
'''</summary>
|
||||
@@ -3454,7 +3481,7 @@ Namespace My.Resources
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Looks up a localized string similar to Custom 7-Zip arguments can cause backup or restore operations to fail.[BR][BR]If problems occur, clear the arguments and refer to the GBM manual..
|
||||
''' Looks up a localized string similar to Invalid or poorly formatted 7-Zip arguments can cause backup or restore operations to fail.[BR][BR]If problems occur, clear the arguments and refer to the GBM manual..
|
||||
'''</summary>
|
||||
Friend ReadOnly Property frmSettings_WarningArguments() As String
|
||||
Get
|
||||
@@ -3462,6 +3489,15 @@ Namespace My.Resources
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Looks up a localized string similar to You have chosen a custom utility that does not appear to be 7-Zip Console (7za). GBM only supports the use of 7-Zip..
|
||||
'''</summary>
|
||||
Friend ReadOnly Property frmSettings_WarningLocation() As String
|
||||
Get
|
||||
Return ResourceManager.GetString("frmSettings_WarningLocation", resourceCulture)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Looks up a localized string similar to Choose a backup folder:.
|
||||
'''</summary>
|
||||
|
||||
@@ -1637,6 +1637,18 @@
|
||||
<value>Locate 7-Zip Console (7za)</value>
|
||||
</data>
|
||||
<data name="frmSettings_WarningArguments" xml:space="preserve">
|
||||
<value>Custom 7-Zip arguments can cause backup or restore operations to fail.[BR][BR]If problems occur, clear the arguments and refer to the GBM manual.</value>
|
||||
<value>Invalid or poorly formatted 7-Zip arguments can cause backup or restore operations to fail.[BR][BR]If problems occur, clear the arguments and refer to the GBM manual.</value>
|
||||
</data>
|
||||
<data name="frmMain_Error7zCustom" xml:space="preserve">
|
||||
<value>The custom 7-Zip utility could not be found at:[BR][BR][PARAM][BR][BR]Please check your settings, the default 7-Zip utility will be used.</value>
|
||||
</data>
|
||||
<data name="frmSettings_ConfirmDefaults" xml:space="preserve">
|
||||
<value>Do you want to revert all settings to their defaults?</value>
|
||||
</data>
|
||||
<data name="frmSettings_ErrorLocation" xml:space="preserve">
|
||||
<value>The custom 7-Zip location [PARAM] does not exist.</value>
|
||||
</data>
|
||||
<data name="frmSettings_WarningLocation" xml:space="preserve">
|
||||
<value>You have chosen a custom utility that does not appear to be 7-Zip Console (7za). GBM only supports the use of 7-Zip.</value>
|
||||
</data>
|
||||
</root>
|
||||
Reference in New Issue
Block a user