Como le e realizado es de la siguiente manera:
lo que necesitas es un libreria "Ionic.Zlib" (dll) la cual comprime
luego hacer referenciar el archivo desde el proyecto. Apretamos el botón derecho encima del proyecto y pulsamos "Agregar referencia"
vamos a la pestaña "Examinar" y seleccionamos la librería "Ionic.Zip.dll"
Y, finalmente, desde el código fuente, vamos a importar la librería para poder utilizar sus métodos.
Imports ionic.zip
Descomprimir un archivo
Para descomprimir un archivo, usaremos un procedimiento Sub que se llamará "Extraer". Os pego el código:
Private Sub Extraer()
Dim ZipAExtraer As String = "ArchivoZipAExtraer"
Dim DirectorioExtraccion As String = "CarpetaDondeIraElArchivoExtraido"
Using zip1 As ZipFile = ZipFile.Read(ZipAExtraer)
Dim e As ZipEntry
For Each e In zip1
e.Extract(DirectorioExtraccion, ExtractExistingFileAction.OverwriteSilently)
Next
End Using
End Sub
explicacion cada variable:
ZipAExtraer: Variable de tipo "String" donde pondremos la ruta para el archivo a extraer
DirectorioExtraccion: Variable de tipo "String" donde pondremos la ruta donde irá el archivo extraído.
zip1: Variable de tipo "ZipFile" (incluido en la clase ionic.zip.dll) que le dice a la clase que archivo tiene que leer y el contenido a extraer.
Una vez con la ruta de entrada (Guardado en ZipAExtraer), la ruta de salida (Guardado en DirectorioExtraccion) y diciéndole que lo extraiga (gracias a la variable zip1), la función ya está lista para su uso.
Comprimir un archivo
ora realizaremos el procedimiento a la inversa, en que seleccionaremos unos cuantos archivos y los comprimiremos en un archivo .zip
Esta vez usaremos un procedimiento Sub que se llamará "Comprimir". Os pego el código:
Private Sub Comprimir()
Using zip As ZipFile = New ZipFile()
zip.AddFile("Archivo1")
zip.AddFile("Archivo2")
zip.AddFile("Archivo3")
zip.Save("Miarchivozip.zip")
End Using
End Su
Esta vez el código es mucho más sencillo. Lo que hace este procedimiento es declarar una variable llamada "zip" de tipo "ZipFile" (incluido en la clase ionic.zip.dll) y, una vez declarada, usaremos el método "AddFile" para ir añadiendo los archivos que queramos incluir en el Zip.
Es por eso que, en donde dice "Archivo1", "Archivo2", etc.... tenemos que pegar la ruta donde tenemos el archivo a comprimir.
Finalmente, una vez con todos los archivos, se utiliza el método "Save" para guardar el archivo comprimido en .zip
Disculpa asnaed espero y me puedas contestar, me sirvio este codigo y lo modifique para que el usuario seleccione el archivo manualmente con un OpenFileDialog, pero mi duda es, como puedo hacerle para que el archivo se comprima con el mismo nombre que el usuario selecciono en dado caso de que haya comprimido solo un archivo...
Saludos!