Puedes hacerlo comprobando si el fichero de backup existe con If (My.Computer.FileSystem.FileExists(fullPath)) Then...
En caso de que exista, damos opción a reemplazar o cancelar, y en caso de que no exista proceder. Según elija el usuario borraremos el fichero anterior y pondremos el nuevo, o cancelaremos la operación. Modificado:
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim ruta1 As String
Dim respuestaUsuario As String
'Elegir el fichero del que queremos crear el backup
Dim openFileDialog1 As New OpenFileDialog()
openFileDialog1.Filter = "Base de datos sdf |*.sdf| Fichero de texto |*.txt"
openFileDialog1.Title = "Seleccionar fichero para crear backup"
If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
ruta1 = openFileDialog1.FileName
MessageBox.Show("Fichero seleccionado: " & ruta1 & vbCrLf & vbCrLf & "Elija a continuación la ruta donde se creará el backup." & vbCrLf)
End If
'Fin elegir fichero del que queremos crear el backup
Dim ruta2 As String
'Elegir directorio donde se creará el backup
Dim folderBrowserDialog1 As New FolderBrowserDialog()
folderBrowserDialog1.Description = "Seleccionar directorio para crear backup"
If folderBrowserDialog1.ShowDialog() = DialogResult.OK Then
ruta2 = folderBrowserDialog1.SelectedPath
MessageBox.Show("Ruta del directorio donde se creará el backup: " & ruta2 & vbCrLf & vbCrLf & "A continuación se creará el backup y podrá acceder a él desde el sistema de archivos." & vbCrLf)
End If
Dim fullPath As String
Select Case openFileDialog1.FilterIndex
Case 1
fullPath = My.Computer.FileSystem.CombinePath(ruta2, "backup.sdf")
MsgBox("Ruta de guardado:" & fullPath)
Case 2
fullPath = My.Computer.FileSystem.CombinePath(ruta2, "backup.txt")
MsgBox("Ruta de guardado:" & fullPath)
End Select
If (My.Computer.FileSystem.FileExists(fullPath)) Then
respuestaUsuario = MsgBox("El archivo ya existe ¿Desea reemplazarlo?", MsgBoxStyle.OkCancel)
MsgBox("Respuesta del usuario: " & respuestaUsuario)
If respuestaUsuario = 1 Then
MsgBox("Respondió reemplazar")
My.Computer.FileSystem.DeleteFile(fullPath)
My.Computer.FileSystem.CopyFile(ruta1, fullPath)
Else
MsgBox("Canceló")
End If
Else
My.Computer.FileSystem.CopyFile(ruta1, fullPath)
End If
End Sub
End Class