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 .NetMé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 |
UZIP000 | File unzip successfully | Descomprimir: El proceso terminó correctamente. |
UZIP001 | Invalid Parms, can't continue | Descomprimir: Algún parámetro (Archivo comprimido | Carpeta Resultante) se encuentran vacios. |
UZIP002 | Invalid Zip File, can't continue | Descomprimir: El archivo zip especificado para descomprimir no existe. |
UZIP003 | Can't create destination folder, check permission | Descomprimir: El directorio especificado resultante no existe y no es posible crearlo. |
UZIP004 | Can't unzip file, error detail: ... | Descomprimir: Ocurrio un error en el proceso, se concatena al error el mensaje capturado por la excepción. |
ZIP000 | File zip successfully | Comprimir: El proceso terminó correctamente. |
ZIP001 | Invalid Parms, can't continue | Comprimir: Algún parámetro (Carpeta a Comprimir | Archivo comprimido) se encuentran vacios. |
ZIP002 | Invalid InputFolder, can't continue | Comprimir: El directorio a comprimir no existe. |
ZIP003 | Can'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.
Genial
ResponderEliminarEstimado, 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
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarsalduos hugo, estoy tratando de utilizar esta herramienta y me origina el siguiente error: javax.servlet.ServletException: java.lang.NoClassDefFoundError: com/hugao/ziptools/kernel/ZipTools
ResponderEliminarEstou com o mesmo problema! conseguistes resolver?
EliminarHola pareciera que GeneXus no copio los archivos completos (jar) al web app o al classpath, puede ser porque tengas editado el classpath.
EliminarMe confirmas como te va.
Saludos.
Consegui utilizar muito obrigado.
EliminarHola me parece muy bueno.
ResponderEliminar¿Sabeis como se hace para que cuando comprimes un archivo con doZipListFiles () no te aparezca toda la ruta en el zip.?
Este comentario ha sido eliminado por el autor.
ResponderEliminarHola el .jar se encuentra en el xpz y debería quedar agregado en el apartado de Files de la KB.
EliminarSi 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.
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