Clase para crear archivos ZIP con Visual FoxPro 9

visual fox pro manuales foro libros
ada
Clase para crear archivos ZIP con Visual FoxPro 9 RegistrateNewsletter
+ de 45.000 registrados
Clase para crear archivos ZIP con Visual FoxPro 9
AñadenosFavoritos
Inicio >> Visual Fox Pro >> esta pagina
Clase para crear archivos ZIP con Visual FoxPro 9
 

Clase para crear archivos ZIP con Visual FoxPro 9

La clase ZIP.VCX esta desarrollada en Visual FoxPro 9 y permite comprimir y descomprimir archivos zip, para eso se usan las librerías aZip32.dll y aUnZip32.dll. Esta librería cuenta con la siguientes clases:

1.Clases
1.1 Interface
1.1.1 Compresión
1.1.1.1 Destino
1.1.1.2 Contraseña
1.1.1.3 Pestaña Incluir
1.1.1.4 Pestaña excluir
1.1.1.5 Comentario
1.1.2 Descompresión
1.1.2.1 Origen
1.1.2.2 Destino
1.1.2.3 Contraseña
1.3 Opciones
1.3.1 Modo de ompresión
1.3.2 Sobrescrinir archivos en el zip
1.4 Metodos y eventos
1.2 Zip
1.2???;?n`a?A ?a?a????.1 Metodos y eventos
1.2.1.1 Metodo Objeto.Comprimir()
1.2.1.2 Metodo Objeto.Descomprimir()
1.2.1.3 Metodo Objeto.Agregar(tcArchivo, tcOpcion)
1.3 Nota SET PATH TO

--> DESCARGAR ZIP.VCX, EJEMPLO Y DLL´S <--

CLASE: Zip.Interface
Esta clase permite a través de una interfase grafica permite al usuario trabajar con archivos zip a su antojo.

COMPRESIÓN

zip1

 

Destino: Es la ruta y el nombre del archivo ZIP que se generara, por ejemplo C:/prueba.zip, utilice el botón “…” para especificar el archivo.

Contraseña: Permite proteger el archivo ZIP con una contraseña, si desea ver la contraseña ingresada haga clic en “Mostrar Contraseña”, para ocultarla haga clic nuevamente.

Pestaña “Archivos a incluir”: En esta pestaña se agregan a la lista los archivos a respaldar, para tal fin existen cuatro botones:

  • Agregar archivo: permite agregar un archivo a la lista
  • Agregar carpeta:???;?n`a?A ?a?a???? Permite agregar todo el contenido de una carpeta, para tal fin se usa el carácter *, por ejemplo si queremos agregar todo el contenido de una carpeta hacemos clic en el botón  Agregar carpeta, el nos muestra una ventana donde seleccionamos la carpeta, luego nos muestra la siguiente ventana

    Si quisiéramos ingresar todos los archivos cuyo nombre empezaran con la letra “A” escribiríamos I:\TRUCOS VFP\A*.*, si por el contrario quisiéramos todos los archivos que fueran de texto escribiríamos I:\TRUCOS VFP\*.TXT, la opción I:\TRUCOS VFP\*.* selecciona todos los archivos.

  • Quitar: remueve de la lista de archivos el que este seleccionado
  • Limpiar: Quita de la lista todos los archivos

Pestaña “Archivos a Excluir ”: Similar a Archivos a incluir

Comentario: permite agregar un comentario al archivo zip, el botón “…” que esta al lado permite cargar el comentario desde un archivo de texto

DESCOMPRESIÓN

Origen: Indica el archivo zip a descomprimir, para seleccionar el origen haga clic en el botón “…” que se encuentra al lado

Destino: Especifica la carpeta en donde serán e???;?n`a?A ?a?a????xtraídos los archivos

Contraseña: Permite desproteger el archivo ZIP en caso de que lo estuviera

OPCIONES

Incluir sub-directorio: hace la inserción de archivos recursiva

Incluir directorio: NO DOCUMENTADA

Incluir directorio Vacíos: NO DOCUMENTADA

Restaurar estructura: Si es verdadera restaura las carpetas y subcarpetas, de lo contrario extrae todos los archivos en el directorio de destino y omite la estructura previa

Incluir archivos ocultos: Si es verdadero agrega los archivos ocultos, de lo contrario los omite

Incluir archivos del sistema y solo lectura funcionan igugual que incluir archivos ocultos

Modo de compresión: La librería aZip32.dll soporta cuatro niveles de compresión, seleccione según su criterio, por defecto se estable la Normal

Sobrescribir archivos: estable la acción para cuando los archivos a incluir ya existen en el zip

 

Métodos y propiedades de la clase Zip.Interface

Comprimir: Hace llamado al método comprimir del objeto Zip1 y muestra resultados


Descomprimir: Hace llamado al método descomprimir del objeto Zip1 y muestra resultados

 

CLASE ZIP.ZIP

Esta clase se encarga de dar uso a las dll aZip32.dll y aUnZip32.dll

Métodos y propiedades de la clase Zip.Interface

Propiedades

ArchivosExcluir : Propiedad tipo texto que indica los archivos que no se incluiran en el zip, para mas de un archivo deben estar separados por el signo | (chr(124) Ejemplo: "C:\autoexec.bat|C:\bott.ini"

ArchivosExtraer : Propiedad tipo texto que indica los archivos que no se extraeran del zip, por defecto se extraeran todos (*.*), para mas de un archivo deben estar separados por el signo | (chr(124)

ArchivosIncluir : Propiedad tipo texto que indica los archivos que se incluiran en el zip, para mas de un archivo deben estar separados por el signo | (chr(124)

ArchivosZip : Propiedad tipo texto que indica la ruta???;?n`a?A ?a?a???? y nombre dela rchivo zip a comprimir o descomprimir. Ejemplo "C:\prueba.zip"

Comentario : Propiedad tipo texto que contiene el comentario que se agregara en el zip

Compresion : Propiedad tipo entero que indica indica el nivel de compresion del archivo, 3:Maximo, 2:Normal, 1:Minimo, 0:Ninguno

Contraseña : Propiedad tipo texto que contiene la contraseña del archvo zip a comprimir o descomprimir

DirectorioDestino : Propiedad tipo texto que estable el directorio en donde los archivos seran extraidos

EntrarDirectorio : NO DOCUMENTADO

EntrarDirectorioVacio : NO DOCUMENTADO

Fresehn : NO DOCUMENTADO

GuardarEsctructura : Propiedad tipo entero que indicasi se guarda la estructura de los directorios, 1:Si, 0:No

IncluirArchivosDelSistema: 1:Si, 0:No

IncluirArchivosSoloLectura: 1:Si, 0:No

IncluirOcultos: ,1:Si, 0:No

MultiVolumenes :1:Si, 0:No

RestaurarEstructura: 1:Si, 0:No

Sobrescribir : 1:Si, 0:No

Subdirectorios : 1:Si, 0:No

Metodos

Agregar : Este metodo permite adicionar al la lista de ArchivosIncluir nuevos arcivos, revisando que no existan y agregando | para separarlos, tiene dos parametros, el primero es el archivo con su ruta, el segundo si el archivo se incluira en la lista ArchivosIncluir +, o en la lista ArchivosExcluir - su uso es :

Objeto.Agregar('C:/archivo.000','+') &&Agrega un archivo a ArchivosIncluir

Objeto.Agregar('C:/archivo.000','-') &&Agrega un archivo a ArchivosExcluir

 

Comprimir: Inica el proceso para comprimir archivos, no requiere parametros y retorna el numero de archivos procesados

Descomprimir: Inica el proceso para descomprimir archivos, no requiere parametros y retorna el numero de archivos procesados

Metodo Objeto.Comprimir()

WITH this
*!* Validando propiedades antes de Iniciar
DO CASE
CASE EMPTY(.ArchivoZip)=.t.
=MESSAGEBOX('No ha definido el archivo zip de destino',0+48+0,'Zip destino')
RETURN 0
CASE EMPTY(.ArchivosIncluir)=.t.
=MESSAGEBOX('No ha incluido archivos para comprimir',0+48+0,'Archivos a incluir')
RETURN 0
CASE FILE('aZip32.dll')=.f.
=MESSAGEBOX('No se ha encontrado el archivo aZip32.dll',0+16+0,'Falta archivo')
RETURN 0
OTHERWISE
*!* Declarando metodos de la API de Windows
PRIVATE HWND
DECLARE INTEGER GetActiveWindow IN win32api
HWND = GetActiveWindow()

*!* Declarando metodos y propiedades de la API aZIP32.dll
DECLARE addZIP_Initialise IN AZIP32
DECLARE SHORT addZIP_SetParentWindowHandle IN AZIP32 SHORT HWindow
DECLARE SHORT addZIP_ArchiveName IN AZIP32 STRING @ sArchName
DECLARE SHORT addZIP_Include IN AZIP32 STRING @ sFileName
DECLARE SHORT addZIP_Exclude IN AZIP32 STRING @ seFileName
DECLARE SHORT addZIP_Recurse IN AZIP32 SHORT nRecurse
DECLARE SHORT addZIP_SetCompressionLevel IN AZIP32 SHORT nComprLvl
DECLARE SHORT addZIP_IncludeDirectoryEntries IN AZIP32 SHORT nInclDir
DECLARE SHORT addZIP_IncludeEmptyDirectoryEntries IN AZIP32 SHORT nInclEDir
DECLARE SHORT addZIP_Update IN AZIP32 SHORT nUpdate
DECLARE SHORT addZIP_SpanSizes IN AZIP32 LONG @ ulFirst, LONG @ ulOther
DECLARE SHORT addZIP_Span IN AZIP32 SHORT nSpan
DECLARE SHORT addZIP_Register IN AZIP32 STRING @ RegName, LONG RegNum
DECLARE SHORT addZIP_Encrypt IN AZIP32 STRING @ sPassw
DECLARE INTEG???;?n`a?A ?a?a????ER addZIP IN AZIP32
DECLARE INTEGER addZIP_Comment IN AZIP32 STRING @ lpStr
DECLARE INTEGER addZIP_SaveStructure IN AZIP32 INTEGER Int16
DECLARE INTEGER addZIP_BuildSFX IN AZIP32 INTEGER iFlag
DECLARE INTEGER addZIP_IncludeHidden IN AZIP32 INTEGER iFlag
DECLARE INTEGER addZIP_IncludeSystem IN AZIP32 INTEGER iFlag
DECLARE INTEGER addZIP_IncludeReadOnly IN AZIP32 INTEGER iFlag

*!* Iniciando proceso
addZIP_Initialise() && Iniciando proceso
addZIP_IncludeHidden(IIF(.IncluirArchivosOcultos>1,1,.IncluirArchivosOcultos)) && Incluir en el Zip Archivos Ocultos
addZIP_IncludeSystem(IIF(.IncluirArchivosSoloLectura>1,1,.IncluirArchivosSoloLectura)) && Incluir en el Zip Archivos del sistema
addZIP_IncludeReadOnly(IIF(.IncluirArchivosSoloLectura>1,1,.IncluirArchivosSoloLectura))&& Incluir en el Zip Archivos de solo lectura
addZIP_SetParentWindowHandle(_screen.HWnd) && Handle
addZIP_Register(.RegistroUsuario,.RegistroLlave) && Registrando
addZIP_Recurse(IIF(.Subdirectorios=.t.,1,0)) &&Almacenar informacion de subdirectorios
addZIP_IncludeDirectoryEntries(IIF(.EntrarDirectorio=.t.,1,0)) &&
addZIP_IncludeEmptyDirectoryEntries(IIF(.EntrarDirectorioVacio=.t.,1,0)) &&
addZIP_SetCompressionLevel(ICASE(.Compresion<0,2,.Compresion>3,2,.Compresion))
addZIP_SaveStructure(ICASE(.GuardarEstructura<0,0,.Compresion>2,2,.GuardarEstructura))
addZIP_ArchiveName(.ArchivoZip) && Archivo de destino ZIP
addZIP_Include(.ArchivosIncluir) && Archivos a Incluir, separador por |
addZIP_Exclude(.ArchivosExcluir) && Archivos a excluir, separados por |
addZIP_Encrypt(.Contraseña) ???;?n`a?A ?a?a????&& Contraseña de acceso
addZIP_Comment(.Comentario) && Comenatorio en el archivo
addZIP_Span(.MultiVolumenes) && Multiples volumenes
RETURN addZIP() && Comprime y retorna los archivos procesados
ENDCASE
ENDWITH

 

Metodo Objeto.Descomprimir()

WITH this
*!* Validando propiedades antes de Iniciar
DO CASE
CASE EMPTY(.ArchivoZip)=.t. OR FILE(.ArchivoZip)=.f.
=MESSAGEBOX('No ha definido el archivo zip de origen o no exite',0+48+0,'Zip origen')
RETURN 0
CASE FILE('aUnZip32.dll')=.f.
=MESSAGEBOX('No se ha encontrado el archivo aUnZip32.dll',0+16+0,'Falta archivo')
RETURN 0
OTHERWISE
*!* Declarando metodos de la API de Windows
PRIVATE HWND
DECLARE INTEGER GetActiveWindow IN win32api
HWND = GetActiveWindow()

*!* Declarando metodos y propiedades de la API aUnZIP32.dll
DECLARE LONG addUNZIP IN aunzip32.DLL
DECLARE INTEGER addUNZIP_Abort IN aunzip32.DLL INTEGER iFlag
DECLARE INTEGER addUNZIP_ArchiveName IN aunzip32.DLL STRING filename
DECLARE INTEGER addUNZIP_Decrypt IN aunzip32.DLL STRING cPassword
DECLARE INTEGER addUNZIP_DisplayComment IN aunzip32.DLL INTEGER bFlag
DECLARE INTEGER addUNZIP_Exclude IN aunzip32.DLL STRING FILES
DECLARE INTEGER addUNZIP_ExcludeListFile IN aunzip32.DLL STRING cFile
DECLARE INTEGER addUNZIP_ExtractTo IN aunzip32.DLL STRING cPath
DECLARE INTEGER addUNZIP_Freshen IN aunzip32.DLL INTEGER iFlag
DECLARE INTEGER addUNZIP_GetLastError IN aunzip32.DLL
DECLARE I???;?n`a?A ?a?a????NTEGER addUNZIP_GetLastWarning IN aunzip32.DLL
DECLARE INTEGER addUNZIP_Include IN aunzip32.DLL STRING FILES
DECLARE INTEGER addUNZIP_IncludeListFile IN aunzip32.DLL STRING cFile
DECLARE addUNZIP_Initialise IN aunzip32.DLL
DECLARE INTEGER addUNZIP_InstallCallback IN aunzip32.DLL STRING funnc
DECLARE INTEGER addUNZIP_Overwrite IN aunzip32.DLL INTEGER iFlag
DECLARE INTEGER addUNZIP_Register IN aunzip32.DLL STRING cName, LONG lNumber
DECLARE INTEGER addUNZIP_ResetDefaults IN aunzip32.DLL
DECLARE INTEGER addUNZIP_RestoreAttributes IN aunzip32.DLL INTEGER iFlag
DECLARE INTEGER addUNZIP_RestoreStructure IN aunzip32.DLL INTEGER iFlag
DECLARE INTEGER addUNZIP_SetParentWindowHandle IN aunzip32.DLL LONG HWND
DECLARE INTEGER addUNZIP_SetWindowHandle IN aunzip32.DLL LONG HWND
DECLARE INTEGER addUNZIP_Test IN aunzip32.DLL INTEGER iFlag
DECLARE INTEGER addUNZIP_ToMemory IN aunzip32.DLL STRING lpStr, LONG Uint32
DECLARE INTEGER addUNZIP_Update IN aunzip32.DLL INTEGER iFlag
DECLARE INTEGER addUNZIP_View IN aunzip32.DLL INTEGER bFlag

*!* Iniciando proceso
addUNZIP_Initialise()
addUNZIP_SetParentWindowHandle(_screen.HWnd)
addUNZIP_Register(ALLTRIM(.RegistroUsuario),.RegistroLlave)
addUNZIP_Decrypt(.Contraseña)
addUNZIP_RestoreStructure(.RestaurarEstructura)
addUNZIP_Freshen(.Freshen)
addUNZIP_ArchiveName(.ArchivoZip)
addUNZIP_ExtractTo(ALLTRIM(FULLPATH(.DirectorioDestino)))
addUNZIP_Include(IIF(EMPTY(.ArchivosExtraer)=.t.,'*.*',.ArchivosExtraer))
addUNZIP_Overwrite(ICASE(.Sobrescribir>12,12,.Sobrescribir<10,10,.Sobrescribir))
RETURN addUNZIP()
ENDCASE
ENDWITH

 

Metodo Objeto.Agregar(tcArchivo, tcOpcion)

LPARAMETERS tcArchivo as String, tcOpcion as String

*!* Dando formato a los parametros
tcArchivo=ALLTRIM(UPPER(TRANSFORM(tcArchivo)))
tcOpcion=ALLTRIM(UPPER(TRANSFORM(tcOpcion)))

WITH this
*!* Valida parametros
DO CASE
CASE tcArchivo$.ArchivosIncluir
=MESSAGEBOX('El archivo '+tcArchivo+' Ya se ha agregado con anterioridad',0+48+0,'Archivo',3200)
OTHERWISE
*!* Segun opcion agrega a la lista de Inlcuir o de escluir
DO CASE
CASE tcOpcion='+'
.ArchivosIncluir=.ArchivosIncluir+IIF(EMPTY(.ArchivosIncluir)=.f.,'|','')+tcArchivo
CASE tcOpcion='-'
.ArchivosExcluir=.ArchivosExcluir+IIF(EMPTY(.ArchivosExcluir)=.f.,'|','')+tcArchivo
OTHERWISE
=MESSAGEBOX('Error de parametro, A:Inlcuir en zip, E:Excluir en zip',0+16+0,'Parametro',6400)
ENDCASE
ENDCASE
ENDWITH

Nota: Se debe especificar SET PATH TO 'Carpeta' ADDITIVE donde Carpeta es la ubicacion de las librerias aZip32.dll y aUnZip32.dll , por ejemplo

Ruta relativa: SET PATH TO FULLPATH(CURDIR()+'DLL') ADDITIVE
la dll se encuentra en el directorio por defecto en la carpeta DLL si el directorio por defecto fuera C:\MiApp, las dll estarian en C:\MiApp\aZip32.dll y C:\MiApp\aUnZip32.dll

 

 

 

José Guillermo Ortiz Hernández
Programador Visual FoxPro, WEB Developer


Mas articulos de visual fox pro
visual fox pro Cómo automatizar Word de Visual FoxPro y agregar una tabla a un documento
visual fox pro Crear un instalador en Inno Setup para una aplicacion desarrollada en Visual FoxPro (VFP)
visual fox pro Simulador de la ventana de comandos de visual fox pro
visual fox pro Definir un menú en Visual FoxPro
visual fox pro Clase para crear archivos ZIP con Visual FoxPro 9
visual fox pro Codificar cadenas con vernam en visual fox pro
visual fox pro Codificar cadenas con MD5 en visual fox pro
visual fox pro Clase para ENCRIPTAR POR BLOWFISH con Visual FoxPro
visual fox pro como automatizar hojas de calculo de microsoft excel con Visual FoxPro
visual fox pro Como insertar un control OCX y hacer uso de el en FoxPro
visual fox pro Definir un ComboBox con Imágenes y fuente en un color específico,
  ver mas articulos de visual fox pro
   
Secciones de Visual Fox Pro
visual fox pro Nuestro Manual de Visual Fox Pro Seccion Descargas Visual Fox Pro
Manuales de Visual Fox Pro Tutoriales de Visual Fox Pro
visual fox pro Seccion Foro Visual Fox Pro visual fox pro Seccion Codigo Fuente
Seccion Libros de Visual Fox Pro    
Recomendar
hacer logos para tu web gratis crear un logo logo creator Recomendar esta pagina a un amigo


Clase para crear archivos ZIP con Visual FoxPro 9