Autor Tema: crear un boton para copia de seguridad archivos Visual Basic savefiledialog  (Leído 10934 veces)

taliban

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 18
    • Ver Perfil
hola he creado un ToolStripMenu con un savefiledialog para cuando abras busques la base de datos clientes.sdf la selecciones y busques una ubicacion fuera del directorio donde se instalo para  hacer click en el boton guardar y guardarla , bien todo va bien , el problema es que cuando guarda la base de datos le das a propiedades en el archivo guardado y pone que ocupa 0 bytes.


Código: [Seleccionar]
   Private Sub CopiaDeSeguridadToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles CopiaDeSeguridadToolStripMenuItem.Click
        Dim mystream As Stream
     

        Dim abrir As SaveFileDialog
        abrir = New SaveFileDialog
        abrir.InitialDirectory = "c:\dos"
        abrir.RestoreDirectory = True
        abrir.Title = "Selecciona la base de datos Clientes.sdf "
        If abrir.ShowDialog() = Windows.Forms.DialogResult.OK Then


            mystream = abrir.OpenFile



            If (mystream IsNot Nothing) Then
                mystream.Close()

            End If
        End If


    End Sub
« Última modificación: 14 de Septiembre 2014, 18:05 por Alex Rodríguez »

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Re:crear un boton para copia de seguridad archivos Visual Basic
« Respuesta #1 en: 06 de Abril 2014, 19:28 »
Aquí tienes un ejemplo de cómo puedes seleccionar en primer lugar el archivo del que desees crear el backup, y luego el directorio donde quieras guardar el backup, de modo que el archivo seleccionado se copia en el directorio indicado con un nuevo nombre:

Código: [Seleccionar]
Public Class Form1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim ruta1 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
        My.Computer.FileSystem.CopyFile(ruta1, fullPath)
    End Sub
End Class

De esta manera debería generarte una copia sin problemas (en teoría).

Responsable de departamento de producción aprenderaprogramar.com

taliban

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 18
    • Ver Perfil
Re:crear un boton para copia de seguridad archivos Visual Basic
« Respuesta #2 en: 07 de Abril 2014, 15:14 »
correcto , muchas gracias, funciona perfectamente

taliban

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 18
    • Ver Perfil
Re:crear un boton para copia de seguridad archivos Visual Basic
« Respuesta #3 en: 06 de Mayo 2014, 13:27 »
hola , cuando creas la copia de seguridad la copia sin problemas en el directorio que elijas pero el problema es cuando decides hacer otra copia, si en la carpeta donde hiciste la ultima copia sigue estando hay ,te salta un error ,si tu antes de hacer la copia borras la antigua , te la copia sin ningun problema , como consigo que me borre la antigua para grabar la copia nueva ?
 gracias

javi in the sky

  • Avanzado
  • ****
  • Mensajes: 393
    • Ver Perfil
Re:crear un boton para copia de seguridad archivos Visual Basic
« Respuesta #4 en: 06 de Mayo 2014, 14:39 »
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:

Código: [Seleccionar]
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

taliban

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 18
    • Ver Perfil
Re:crear un boton para copia de seguridad archivos Visual Basic
« Respuesta #5 en: 06 de Mayo 2014, 16:48 »
perfecto no me salia lo de

If (My.Computer.FileSystem.FileExists(fullPath))

gracias

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".