En este artículo vamos a conocer un componente ActiveX freeware que puede comprimir/descomprimir facilmente un archivo o carpeta con una sola línea de código. Su nombre es "Zip Component" de Belus Technology Inc.
Conociendo Zip Component Por Luis María Guayán, Tucumán, Argentina
IntroducciónCon 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: http://xstandard.com/page.asp?p=C9891D8A-5390-44ED-BC60-2267ED6763A7 InstalaciónPara 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étodosEstos 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.
La clase Item contiene las siguientes propiedades: - 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
PropiedadesErrorCode: 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 VFPVeremos 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 = NULLDescomprimiendo 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 = NULLConclusionesPor 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
|