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 = NULL
Comprimir archivos con la ruta por omisión:loZip = CREATEOBJECT("XStandard.Zip")
loZip.Pack("C:\Prgs\Prog1.prg", "C:\Zips\Programas.zip", .T.)
loZip = NULL
Comprimir 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 = NULL
Comprimir 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 = NULL
Descomprimiendo archivos usando comodines:loZip = CREATEOBJECT("XStandard.Zip")
loZip.UnPack("C:\Zips\Programas.zip", "C:\Temp\", "*.prg")
loZip = NULL
Listar 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 = NULL
Remover un archivo de un archivo ZIP:loZip = CREATEOBJECT("XStandard.Zip")
loZip.Delete("Prgs\Prog2.prg", "C:\Zips\Programas.zip")
loZip = NULL
Renombrar 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