Ver Mensaje Individual
  #12 (permalink)  
Antiguo 19/03/2008, 11:53
Avatar de jlbautista
jlbautista
 
Fecha de Ingreso: enero-2007
Ubicación: Durango, Méx.
Mensajes: 175
Antigüedad: 17 años, 3 meses
Puntos: 1
Re: ejercicios sobre copias de seguridad que nose plantearlo

Form1 Con 2 GroupBox
GroupBox1 conteniendo un TextBox1 y un Button1
GroupBox2 conteniendo un TextBox2 y un Button2

Además agregar 2 FolderBrowserDialog y otro Botón (Button3) para llamar a GUARDAR

Dejar Todos los controles con los nombres por Default

El código sig hace funcionar El form

Código:
Imports System.IO
Imports System.Threading

Public Class Form1

    'CONSTRUCTOR SOBRECARGADO RECIBIENDO PARAMETROS
    Public Sub New(ByVal strOrigen As String, ByVal strDestino As String, ByVal intRetardo As Integer)
        InitializeComponent()

        'Método Inicio
        Inicio(strOrigen, strDestino, intRetardo)
    End Sub

    'CONSTRUCTOR INICIAL
    Public Sub New()
        InitializeComponent()
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'Cuando se hace click en el primer Botón, se manda a llamar al Cuadro de Diálogo para seleccionar la carpeta ORIGEN
        FolderBrowserDialog1.ShowDialog()
        'El Path de la Carpeta Seleccionada se guarda en el TextBox1
        TextBox1.Text = FolderBrowserDialog1.SelectedPath
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        'Cuando se hace click en el primer Botón, se manda a llamar al Cuadro de Diálogo para seleccionar la carpeta DESTINO
        FolderBrowserDialog2.ShowDialog()
        'El Path de la Carpeta Seleccionada se guarda en el TextBox2
        TextBox2.Text = FolderBrowserDialog2.SelectedPath
    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        'Validación que evita q los TextBox's queden vacios
        If String.IsNullOrEmpty(TextBox1.Text) Then
            MessageBox.Show("Seleccione Ruta Origen", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Return
        ElseIf String.IsNullOrEmpty(TextBox2.Text) Then
            MessageBox.Show("Seleccione Ruta Destino", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Return
        End If

        'Crea un nuevo Form recibiendo los parámetros q enviará luego al método Inicio()
        Dim frmNuevo As New Form1(TextBox1.Text, TextBox2.Text, NumericUpDown1.Value)
        'Limpia de Memoria los recursos luego de ejecutar las acciones
        Me.Dispose()
    End Sub

    Private Sub Inicio(ByVal strOrigen As String, ByVal strDestino As String, ByVal intRetardo As Integer)
        Dim tsRetardo As New TimeSpan(0, intRetardo, 0) 'Declara una nueva instancia de un TimeSpan de la cantidad de minutos de acuerdo al parámetro recibido
        Thread.Sleep(tsRetardo) 'Retrasa la ejecución de acuerdo al TimeSpan creado anteriormente

        'Checa El Resultado del botón presionado en el Cuadro de Mensaje
        If MessageBox.Show("Sacando copia...", "Backup", MessageBoxButtons.OKCancel, MessageBoxIcon.Information) = Windows.Forms.DialogResult.OK Then
            If My.Computer.FileSystem.DirectoryExists(strDestino) Then 'Si el Directorio Destino existe...
                My.Computer.FileSystem.CopyDirectory(strOrigen, strDestino, True) 'Copia Los archivos de Un directorio a Otro
            Else 'Si el Directorio Destino NO existe...
                My.Computer.FileSystem.CreateDirectory(strDestino) 'Crea el Directorio, y entonces...
                My.Computer.FileSystem.CopyDirectory(strOrigen, strDestino, True) 'Copia Los archivos de Un directorio a Otro
            End If
            FinalDeCopia(True) 'Si se oprimió ACEPTAR
        Else
            FinalDeCopia(False) 'Si se oprimió CANCELAR
        End If
    End Sub

    Private Sub FinalDeCopia(ByVal ipCorrecta As Boolean)
        If ipCorrecta Then
            MessageBox.Show("Final de Copia Correcta", "Resultado", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
        Else
            MessageBox.Show("Final de Copia Incorrecta", "Resultado", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
        End If
    End Sub
End Class