Manejo de Zip32.dll
Cómo comprimir en ZIP con Visual Basic

 

Fecha: 14/Dic/2000
Autor: "Eduardo Gonzalez" egonzalez@ocs.es
Publicado: 05/Sep/2001


Esto es un ejemplo de como utilizar vb para crear archivos .zip. Incluye la dll zip32.dll que es de libre distribución.

Si te parece interesante tambien te puedo enviar un tutorialito de como utilizarla.

Bueno ahora te dejo que tengo que investigar como se utiliza unzip32.dll (para hacer lo contrario, calro)

Saludos:

Eduardo
;-)
 

---xxx---

Existen muchas direcciones de donde bajarse la dll. Esta es sólo una de ellas:

ftp://ftp.info-zip.org/pub/infozip/WIN32/


Aqui te envío un pequeño tutorial que he hecho de como utilizarla.


 

Manejo de la librería de enlace dinámico ZIP32.dll

 

Por Eduardo González Muñiz

 

 

            Tipos necesarios:

 

           

· Public Type ZIPuserfunctions

            ZipPrntFunction As Long

                        ZipPasswordFunction As Long

            ZipCommentFunction As Long

ZipServiceFunction As Long

End Type

 

 

· Public Type ZIPoptions

            fSuffix As Long

fEncrypt As Long

fSystem As Long

fVolume As Long

fExtra As Long

fNoDirEntries As Long

fExcludeDate As Long

fIncludeDate As Long

fVerbose As Long

fQuiet As Long

fCRLF_LF As Long

fLF_CRLF As Long

fJunkDir As Long

fRecurse As Long

fGrow As Long

fForce As Long

fMove As Long

fDeleteEntries As Long

fUpdate As Long

fFreshen As Long

fJunkSFX As Long

fLatestTime As Long

fComment As Long

fOffsets As Long

fPrivilege As Long

fEncryption As Long

fRepair As Long

flevel As Byte

date As String ' 8 bytes long

szRootDir As String ' up to 256 bytes long

End Type

 

 

· Public Type ZIPnames

            s(0 To 99) As String

  End Type

 

· Public Type CBChar

            ch(4096) As Byte

  End Type

 

 

 

Declaración de funciones:

 

· Public Declare Function ZipInit Lib "zip32.dll" (ByRef Zipfun As 

  ZIPuserfunctions) As Long

 

· Private Declare Function ZipSetOptions Lib "zip32.dll" (ByRef Opts As ZIPoptions) As Long

 

· Private Declare Function ZipArchive Lib "zip32.dll" (ByVal argc As Long, ByVal funame As String, ByRef argv As ZIPnames) As Long

 

Existen además otras funciones que hacen referencia a los distintos tipos de encriptación.


 

 

 

· La estructura ZIPUSERFUNCTIONS:

 

Son las funciones a las que la dll lamará cuando quiera hacer determinadas acciones como mostrar mensajes, pedir password, etc

 

- ZipPrntFunction: Debe contener la dirección de memoria donde se encuentra la función a la que la dll llamará cuando vaya a mostrar un mensaje.

 

Esta función, rebirá como parametros un tipo cbchar (array de caracteres que componen el mensaje de la dll) por referencia, y un long, por valor,  que indica el tamaño de la cadena recibida.

 

- ZipCommentFunction: Sirve para añadir un comentario al fichero Zip que se va ha crear, pero de momento lo dejamos.

 

- ZipPasswordFunction: Sirve para pedir un password al usuario en caso de que quiera hacer un Zip

 

- ZipServiceFunction: Pues la verdad es que no se para que sirve

 

Si no vamos a utilizar alguna de estas funciones, podemos introducir como valor &0.

 

· La estructura ZIPOPTIONS:

 

Son las distintas opciones que queremos que se apliquen a la hora de descomprimir el fichero Zip.

 

Las más importantes son:

 

- fEncrypt:  Si deseamos que el fichero sea encriptado

 

- fSystem: Si deseamos que incluya archivos ocultos

 

- fVolume: Si deseamos que incluya la etiqueta de volumen

 

- fExtra: Si incluye o no los atributos de los archivos

 

- fNoDirEntries: Si en caso de que no exista el directorio del archivo, lo crea a

  la  hora de descomprimirlo

 

- fRecurse: Si incluye subdirectorios

 

- flevel: Nivel de compresión (lo más recomendable es usar siempre 0)

 

Existen bastantes más parametros para controlar fechas, y cosas así.


 

· La estructura ZIPNames:

 

Contiene los nombres (rutas completas) de los archivos a comprimir.

(Cada elemento del array es un fichero).

 

 

· Llamadas a las funciones:

 

Deben hacerse en este orden:

 

1-     ZipInit: Se Pasa la estructura de punteros a funciones.

 

2 – ZipSetOptions: Se pasa la estructura de opciones.

 

2-     ZipArchive: Es la función que realmente comienza a comprimir. Recibe como parámetros el numero de ficheros a comprimir, el nombre (ruta completa) del fichero a generar y el array que contiene los nombres de los ficheros a comprimir.

 

Todas las funciones retornan 1 si han ido correctamente y un codigo de error en caso contrario.


ir al índice

Fichero con el código de ejemplo (EjemploZipearVB.zip - 68.5 KB)