Compactar e descompactar arquivos usando VB.Net 2005

Nessa dica o Agnaldo mostra como usar o GZipStream para compactar e descompactar arquivos.

Compactar e descompactar arquivos usando VB.Net 2005

Problema do aluno: Como crio um arquivo ZIP ou abro o mesmo usando o VB.Net 2005?

Solução: Criei um projeto chamado exemploCompressao do tipo Windows Application e, nele,  posicionei 2 buttons, como na figura abaixo:

O código para compactar e descompactar que criei, usando o GZipStream, foi:

Imports System.IO
Imports System.IO.Compression


Public Class Form1

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      Dim ofd As New OpenFileDialog()
      If ofd.ShowDialog() = Windows.Forms.DialogResult.OK Then
         Dim arquivoOriginal() As Byte = File.ReadAllBytes(ofd.FileName)
         Dim arquivoDestino As FileStream = File.Create(ofd.FileName & “.ZIP”)
         Dim zip As New GZipStream(arquivoDestino, CompressionMode.Compress, False)
         zip.Write(arquivoOriginal, 0, arquivoOriginal.Length)
         zip.Close()
         MessageBox.Show(“Compactei!!!”)
      Else
         MessageBox.Show(“Escolha um arquivo, fiote”, “ERRO!!!”, MessageBoxButtons.OK, MessageBoxIcon.Error)
      End If
   End Sub


   Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
      Dim ofd As New OpenFileDialog()
      ofd.Filter = “arquivos zipados|*.zip”
      If ofd.ShowDialog() = Windows.Forms.DialogResult.OK Then
         Dim arquivoOriginal As FileStream = File.OpenRead(ofd.FileName)
         Dim arquivoDestino As FileStream = File.Create(ofd.FileName.Replace(“.ZIP”, “”))
         Dim zip As New GZipStream(arquivoOriginal, CompressionMode.Decompress, False)
         Dim arquivoEmBytes((Convert.ToInt32(arquivoOriginal.Length))) As Byte
         Dim qtdBytes As Int32 = zip.Read(arquivoEmBytes, 0, arquivoEmBytes.Length)
         arquivoDestino.Write(arquivoEmBytes, 0, qtdBytes)
         zip.Close()
         arquivoDestino.Close()
         MessageBox.Show(“Descompactei”)
      Else
         MessageBox.Show(“Escolha um arquivo, fiote”, “ERRO!!!”, MessageBoxButtons.OK, MessageBoxIcon.Error)
      End If
   End Sub


End Class

Artigos relacionados