Gane dinero viendo publicidad

Gane dinero viendo publicidad

lunes, 19 de mayo de 2014

Comprimir archivos con winrar automaticamente desde visual basic 6.0

Muchas veces por razones laborales o de otra indóle necesitamos comprimir un archivo o carpeta de manera regular, de manera periódica, ya sea diaria o semanalmente con el programa winrar con el fin de crear un backup o respaldo de la carpeta de archivos con que se trabajó el día anterior..
Existe una forma de automatizar el proceso con un archivo .bat que llama a una función del programa winrar, lo que haremos a través de este código es automatizar el proceso de la comprensión, ya que con solo hacer clic en el botón el programa selecciona la carpeta configurada en el código, la guarda y le asigna el nombre que deseemos. (Todo esto se configura dentro del código).

El código con sus respectivos comentarios es el siguiente:

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Private Declare Sub InitCommonControls Lib "comctl32" ()

Dim Dia, Mes, Anio As Integer
Dim Fecha_Hoy, Fecha_Ayer As Date
Dim Fecha, DiaSemana As String


'Parametros para elegir el método de compresión
'-m0  Almacenamiento  Agrega ficheros al archivo sin compresión
'-m1 El más rápido   El método más rápido (el que menos comprime)
'-m2 Rápido  Método rápido de compresión
'-m3 Normal  Método normal de compresión (predeterminado)
'-m4 Bueno   Buen método de compresión (más compresión)
'-m5 El mejor    El mejor método de compresión (el que más comprime, pero también el más lento)
'---------------------------------------------------------------------------------------------
'Código que se ejecuta cuando se presiona el botón
Private Sub cmdComprimir2014_Click()

If Dir(App.Path & "\archivo2014.bat") = "" Then       'Si no existe el archivo .bat lo creamos
    Open "archivo2010.bat" For Append As #1
        Print #1, "cd C:\Archivos de programa\WinRar"
        Print #1, "winrar a -m2 C:\" & Fecha & "-2014.rar c:\Ruta Carpeta2014"   'Aca se coloca la ruta de la carpeta a comprimpir
    Close #1
End If

    Call Comprimir2014  'Llamo al procedimiento que comprime la carpeta
   
End Sub

Sub Comprimir2014()

   Dim Ret As Long

   Ret = ShellExecute(Me.hwnd, "Open", "archivo2014.bat", "", "", 1)

End Sub


Private Sub Form_Initialize()
'Estilo Xp
    InitCommonControls

End Sub

Private Sub Form_Load()

Fecha_Hoy = Date    'Fecha actual

Select Case Weekday(Date, vbMonday)

Case 1
    DiaSemana = "lunes"
Case 2
    DiaSemana = "martes"
Case 3
    DiaSemana = "miercoles"
Case 4
    DiaSemana = "jueves"
Case 5
    DiaSemana = "viernes"
Case 6
    DiaSemana = "sabado"
Case 7
    DiaSemana = "domingo"

End Select
Fecha_Ayer = Date - 1   'Fecha de día anterior (ayer)

If DiaSemana = "lunes" Then Fecha_Ayer = Date - 3


Dia = Day(Fecha_Ayer)
If Len(Dia) = 1 Then Dia = "0" & Dia
Mes = Month(Fecha_Ayer)
If Len(Mes) = 1 Then Mes = "0" & Mes
Anio = Year(Fecha_Ayer)

Fecha = Dia & Mes & Anio    'Concateno el día,mes y año

End Sub



La línea que se encarga de realizar el proceso de comprensión es la siguiente:

"winrar a -m2 C:\" & Fecha & "-2014.rar c:\Ruta Carpeta2014"

Si revisamos la ayuda del programa WinRar observamos que el comando 'winrar a' sirve para añadir archivos a una carpeta a ser comprimida.

el parámetro -m2 ('-m2 Rápido Método rápido de compresión), podemos escoger entre -m0 hasta -m5 tal cual como se muestra en los comentarios del código.
Luego se coloca la ruta donde se va a guardar el archivo comprimido. En este ejemplo el nombre del archivo lo guardo con la fecha del día anterior, por ejemplo, si estoy ejecutando el archivo hoy martes 10 de mayo de 2014, lo más probable es que deba comprimir el archivo del día anterior, asi que el nombre del archivo creado quedará con el nombre "09052014" y se guardará en la ruta "C:\".
El último parámetros es la ruta del archivo que se va a comprimir.

Espero que haya sido de utilidad y no duden en comentar susis inquietudes.

No hay comentarios:

Publicar un comentario