Backing up and restoring a file

Posted on 2004-10-13
Last Modified: 2010-04-24
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.
Question by:teamdad
  • 3
LVL 85

Accepted Solution

Mike Tomlinson earned 500 total points
ID: 12302541
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
                End If
                System.IO.File.Copy(sourceFile, targetFile)
            End If
        End If
    End Sub
LVL 85

Expert Comment

by:Mike Tomlinson
ID: 12302579

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".

LVL 85

Expert Comment

by:Mike Tomlinson
ID: 12302638
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!")
            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


Featured Post

ScreenConnect 6.0 Free Trial

Discover new time-saving features in one game-changing release, ScreenConnect 6.0, based on partner feedback. New features include a redesigned UI, app configurations and chat acknowledgement to improve customer engagement!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Microsoft Reports are based on a report definition, which is an XML file that describes data and layout for the report, with a different extension. You can create a client-side report definition language (*.rdlc) file with Visual Studio, and build g…
The ECB site provides FX rates for major currencies since its inception in 1999 in the form of an XML feed. The files have the following format (reducted for brevity) (CODE) There are three files available HERE (…
Established in 1997, Technology Architects has become one of the most reputable technology solutions companies in the country. TA have been providing businesses with cost effective state-of-the-art solutions and unparalleled service that is designed…
Finds all prime numbers in a range requested and places them in a public primes() array. I've demostrated a template size of 30 (2 * 3 * 5) but larger templates can be built such 210  (2 * 3 * 5 * 7) or 2310  (2 * 3 * 5 * 7 * 11). The larger templa…

803 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question