Introducción
Con esta utilidad se puede comprimir y descomprimir archivos y carpetas muy facilmente desde Visual FoxPro. A continuación vamos a conocer los métodos del componente y algunos ejemplos de uso con código VFP.
El enlace para descargar este componente es el siguiente:
https://web.archive.org/web/20200214062545/http://xstandard.com/en/downloads/?product=zip
Instalación
Para su instalación de debe copiar el archivo "XZip.dll" descargado en una carpeta (Ej: "C:\ZipComponent\") y desde la consola de comandos (DOS), en el directorio creado, ejecutamos: "regsvr32 XZip.dll".
En el caso de querer desinstalar el componente, ejecutamos desde la consola de comandos: "regsvr32 -u XZip.dll"
Métodos
Estos son los métodos y sus sintaxis:
Pack: Agrega un archivo o carpeta a un archivo ZIP. El nivel de compresión puede ser de 1 a 9. El valor por omisión es 6.
Pack(cRutaArchivo, cArchivoZip, lAlmacenaRuta, cNuevaRuta, nNivelCompresión)UnPack: Extrae el contenido de un archivo ZIP de una carpeta.
UnPack(cArchivoZip, cRutaCarpeta, cPatron)Delete: Elimina un archivo de un archivo ZIP.
Delete(cArchivo, sArchivoZip)Move: Mueve o renombra un archivo en el archivo ZIP.
Move(cDeArchivo, cAArchivo, cArzhivoZip)Contents: Recibe en un objeto la lista de archivos y carpetas de un archivo ZIP.
Contents(cArchivoZip)El objeto Items recibido contiene las siguientes propiedades:
- Count: Retorna la cantidad de miembros de la colección
- Item: Retorna un miembro específico de la colección.
- Name: Nombre del archivo
- Date: Fecha última modificaión
- Path: Ruta relativa del archivo
- Size: Tamaño en bytes del archivo
- Type: Tipo del item: 1=Carpeta y 2=Archivo
Propiedades
ErrorCode: Retorna el código de error de la última operación.
ErrorDescription: Retorna la descripción del código de error de la última operación.
Version: Retorna la versión del producto.
Ejemplos en VFP
Veremos algunos ejemplos en código de Visual FoxPro, y lo fácil de su uso:
Comprimir archivos:
loZip = CREATEOBJECT("XStandard.Zip") loZip.Pack("C:\Prgs\Prog1.prg", "C:\Zips\Programas.zip") loZip.Pack("C:\Prgs\Prog2.prg", "C:\Zips\Programas.zip") loZip.Pack("C:\Prgs\Prog3.prg", "C:\Zips\Programas.zip") loZip = NULLComprimir archivos con la ruta por omisión:
loZip = CREATEOBJECT("XStandard.Zip") loZip.Pack("C:\Prgs\Prog1.prg", "C:\Zips\Programas.zip", .T.) loZip = NULLComprimir archivos con una ruta específica:
loZip = CREATEOBJECT("XStandard.Zip") loZip.Pack("C:\Prgs\Prog1.prg", "C:\Zips\Programas.zip", .T., "VFP\Original") loZip.Pack("C:\Prgs\Prog1.prg", "C:\Zips\Programas.zip", .T., "VFP\Copia") loZip = NULLComprimir multiples archivos usando comodines:
loZip = CREATEOBJECT("XStandard.Zip") loZip.Pack("C:\Prgs\*.prg", "C:\Zips\Programas.zip") loZip = NULL
Descomprimiendo archivos:
loZip = CREATEOBJECT("XStandard.Zip") loZip.UnPack("C:\Zips\Programas.zip", "C:\Temp\") loZip = NULLDescomprimiendo archivos usando comodines:
loZip = CREATEOBJECT("XStandard.Zip") loZip.UnPack("C:\Zips\Programas.zip", "C:\Temp\", "*.prg") loZip = NULLListar el contenido de un archivo ZIP:
loZip = CREATEOBJECT("XStandard.Zip") loItems = loZip.Contents("C:\Zips\Programas.zip") IF loZip.ErrorCode = 0 FOR EACH lo IN loItems WITH lo ? .Name, .Size, .Path, .Date, IIF(.Type=1,"Dir","File") ENDWITH ENDFOR ELSE MESSAGEBOX(loZip.ErrorDescription,16,"Error") ENDIF loItems = NULL loZip = NULLRemover un archivo de un archivo ZIP:
loZip = CREATEOBJECT("XStandard.Zip") loZip.Delete("Prgs\Prog2.prg", "C:\Zips\Programas.zip") loZip = NULLRenombrar un archivo en un archivo ZIP:
loZip = CREATEOBJECT("XStandard.Zip") loZip.Delete("Prgs\Prog3.prg", "Prgs\Prog99.prg", "C:\Zips\Programas.zip") loZip = NULL
Conclusiones
Por su facilidad de uso y tratarse de un componente freeware que podemos incluir en nuestras aplicaciones sin ningún problema, esta utilidad seguramente cubrirá las necesidades de muchos desarrolladores en Visual FoxPro al momento de comprimir información.
Hasta la próxima.
Luis María
no puedo descomprimir un archivo .zip que contenga una carpeta que debo hacer Gracias de antemano
ResponderBorrarse puede comprimir y descomprimir usando el loZip = CREATEOBJECT("XStandard.Zip") con contraseña
ResponderBorrarno funciona el enlace
ResponderBorrar