Backing up and restoring a file

I am trying find some code to do a simple backup and resotore of a Data.ini file, In short; I have a Data.txt file in a directory called Support Files that I access with Application.StartupPath() I need a button to make a copy of the Data.txt file in the Support Files directory and place the copy of the file in a directory Support Files\Backups but have it renamed to a format of the name "Data" plus the date it was saved on and the .txt extension.  

If for some reason the user messes up the main Data.txt file in the Support Files directory I also need a button to allow them to open the Support Files\Backups directory and select the file they want to replace the bad Data.txt file with.  It will then overwrite the Data.txt file in the Support Files directory with the file from the Support Files\Backups directory and leave the backup copy in the Support Files\Backups directory too.
teamdadAsked:
Who is Participating?
 
Mike TomlinsonMiddle School Assistant TeacherCommented:
Add an OpenFileDialog control from the toolbox to your form and use the following code:

    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Dim supportPath As String = Application.StartupPath() & "\Support Files\"
        Dim backupPath As String = supportPath & "\Backups\"

        OpenFileDialog1.Title = "Please select a Backup INI file to Restore"
        OpenFileDialog1.InitialDirectory = backupPath
        OpenFileDialog1.Filter = "Backup INI files (*.ini)|*.ini"

        If OpenFileDialog1.ShowDialog = DialogResult.OK Then
            Dim sourceFile As String = OpenFileDialog1.FileName
            Dim doubleCheck As String = _
                "Your original Data.ini will be replaced with:" & vbCrLf & _
                sourceFile & vbCrLf & vbCrLf & _
                "Are you sure you want to continue?"
            If MessageBox.Show(doubleCheck, "Restore Backup INI", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) = DialogResult.Yes Then
                Dim targetFile As String = supportPath & "Data.ini"
                If System.IO.File.Exists(targetFile) Then
                    System.IO.File.Delete(targetFile)
                End If
                System.IO.File.Copy(sourceFile, targetFile)
            End If
        End If
    End Sub
0
 
Mike TomlinsonMiddle School Assistant TeacherCommented:
teamdad,

In your first sentence you stated that the file was Data.ini, but in all subsequent references it is Data.txt.

If the file is indeed data.txt and not data.ini, then change all occurrences of "ini" in the code with "txt".

~IM
0
 
Mike TomlinsonMiddle School Assistant TeacherCommented:
You should still be able to use the code srcalc gave you to make a Backup of the file:

    Dim datapath = Application.StartupPath & "\Support Files\"
    Public Sub backupData()
        If Not File.Exists(datapath & "Data.ini") Then
            MsgBox("There is no data to copy!")
        Else
            File.Copy(datapath & "Data.ini", datapath & "Backups\Data" & Now.Month & "-" & Now.Day & "-" & Now.Year & " " & Now.Hour & "-" & Now.Minute & "-" & Now.Second & ".ini")
        End If
    End Sub

~IM
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.