[2.0.] Comprimir un fichero con GZip

2042 vistas

Primero tendremos que añadir los Imports necesarios:



vbnet
  1. Imports System.IO
  2. Imports System.IO.Compression



Ahora crearemos una función que recibirá por parámetro el path completo del fichero a comprimir y el path distino del archivo comprimido.



vbnet
  1.     Public Function compressFile(ByVal pathSource As String, ByVal pathDestination As String) As Boolean
  2.         ' pathSource: path completo del fichero a comprimir
  3.         ' pathDestination: path completo del fichero final comprimido
  4.         Try
  5.             Dim myFileStream As New FileStream(pathSource, FileMode.Open)
  6.             Dim myBuffer(myFileStream.Length) As Byte
  7.  
  8.             ' Lectura de la totalidad del FileStream
  9.             myFileStream.Read(myBuffer, 0, CInt(myFileStream.Length))
  10.             ' cerramos el FileStream
  11.             myFileStream.Close()
  12.             ' creación del fichero que contendrá el fichero comprimido
  13.             myFileStream = New FileStream(pathDestination, FileMode.Create)
  14.             ' compresión de los datos
  15.             Dim myGZipStream As New GZipStream(myFileStream, CompressionMode.Compress, False)
  16.             ' escriobimos los datos comprimidos en el fichero destino
  17.             myGZipStream.Write(myBuffer, 0, myBuffer.Length)
  18.             ' cerramos GZipStream
  19.             myGZipStream.Close()
  20.             Return True
  21.         Catch ex As Exception
  22.             MessageBox.Show(ex.Message)
  23.             Return False
  24.         End Try
  25.     End Function