GeneXus - Zip Tools External Object

Es un External Object que se puede integrar facilmente a una KB de GeneXus desarrollada en GeneXus X Evolution 1 o superior, el cual permite comprimir el contenido de una carpeta especifica generado un archivo con extensión .zip, y a su vez permite extraer los archivos dentro de un archivo .zip en una carpeta definida.

Generadores

Java y .Net

Métodos

  • getFileList - Retorna la lista de archivos descomprimidos por el método doUnzipFile en un string separado por ";".
  • getZipErrCode - Retorna el código de error generado por alguno de los métodos.
  • getZipErrText - Retorna la descripción del error generado por alguno de los métodos.
  • doUnzipFile - Permite descomprimir el contenido de un archivo en formato zip a una carpeta especifica.
    • zipFile: Especifica la ruta completa del archivo en formato zip que se desea descomprimir.
    • outputFolder: Especifica la ruta completa de la carpeta donde se desean que queden almacenados los archivos descomprimidos.
  • doZipFolder - Permite comprimir el contenido de una carpeta especifica.
    • inputFolder: Especifica la ruta completa de la carpeta que se quiere comprimir.
    • zipFile: Especifica la ruta completa donde se guardará el archivo resultante comprimido.
  • doZipListFiles - Permite comprimir una lista de archivos (Restricciones -> Actualmente solo generador Java).
    • listFilesStr: Especifica la lista de archivos separados por ";" que se desean comprimir;
    • zipFile: Especifica la ruta completa donde se guardará el archivo resultante comprimido.

Importar External Object

Para importar la utilidad, simplemente cargue desde Genexus el xpz descargado, debería ver algo similar a lo siguiente.





Ejemplo

Para una muestra de como funciona, puede abrir el WebPanel que se incluye en el XPZ llamado TestingZipTools.





Tabla de Errores

Código

Mensaje

Descripción

UZIP000File unzip successfullyDescomprimir: El proceso terminó correctamente.
UZIP001Invalid Parms, can't continueDescomprimir: Algún parámetro (Archivo comprimido | Carpeta Resultante) se encuentran vacios.
UZIP002Invalid Zip File, can't continueDescomprimir: El archivo zip especificado para descomprimir no existe.
UZIP003Can't create destination folder, check permissionDescomprimir: El directorio especificado resultante no existe y no es posible crearlo.
UZIP004Can't unzip file, error detail: ...Descomprimir: Ocurrio un error en el proceso, se concatena al error el mensaje capturado por la excepción.
ZIP000File zip successfullyComprimir: El proceso terminó correctamente.
ZIP001Invalid Parms, can't continueComprimir: Algún parámetro (Carpeta a Comprimir | Archivo comprimido) se encuentran vacios.
ZIP002Invalid InputFolder, can't continueComprimir: El directorio a comprimir no existe.
ZIP003Can't zip file, error detail: ...Comprimir: Ocurrio un error en el proceso, se concatena al error el mensaje capturado por la excepción.


Requisitos

  • Generador Java
    • Java 7 o superior.
  • Generador .Net
    • Framework 4.5 o superior.

Si te ha gustado este post, y quisieras colaborar con la causa para que todo el contenido sea gratuito y los UC o EO igualmente, puedes donar lo que consideres, usando el botón de la izquierda.

Comentarios

  1. Estimado, es justo lo que necesito, pero he tenido problemas al querer comprimir una carpeta con archivos .jpg. Hay algún tipo de restricción ?? llegué a esa conclusión después de realizar varias pruebas

    ResponderEliminar
  2. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  3. salduos hugo, estoy tratando de utilizar esta herramienta y me origina el siguiente error: javax.servlet.ServletException: java.lang.NoClassDefFoundError: com/hugao/ziptools/kernel/ZipTools

    ResponderEliminar
    Respuestas
    1. Estou com o mesmo problema! conseguistes resolver?

      Eliminar
    2. Hola pareciera que GeneXus no copio los archivos completos (jar) al web app o al classpath, puede ser porque tengas editado el classpath.

      Me confirmas como te va.

      Saludos.

      Eliminar
    3. Consegui utilizar muito obrigado.

      Eliminar
  4. Hola me parece muy bueno.
    ¿Sabeis como se hace para que cuando comprimes un archivo con doZipListFiles () no te aparezca toda la ruta en el zip.?

    ResponderEliminar
  5. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
    Respuestas
    1. Hola el .jar se encuentra en el xpz y debería quedar agregado en el apartado de Files de la KB.

      Si al compilar la KB te sale ese error, debe ser porque tienes el classpath editado y entonces genexus no puede agregar esta nueva lib, si el error te sale al ejecutar el sitio webapp es porque GeneXus no pudo copiar el .jar al WEB-INF/lib para eso búscalo en tu modelo en la carpeta drivers ahí por defecto se descomprime.

      Saludos.

      Eliminar
  6. Hola! ... estoy utilizando perfectamente. El unico problema, que entiendo está corregido, es que el ZIP mantiene toda la estructura de subcarpetas, lo que hace engorroso al descomprimir. Hay alguna manera de evitarlo? ... leí que la versión 2.0.1 corrige ese inconveniente, pero es la q estoy utilizando. Hay algún Workaround para aplicar? ... saludos

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

GeneXus - HugaoBulkActionsManager - User Control/Module-Extension

GeneXus - HugaoMessages - User Control