Inicio Blog Zip Up Acumatica - Manipulación de archivos Parte 1 .Zip

Zip Up Acumatica - Manipulación de archivos Parte 1 .Zip

Revisamos cómo puede archivar archivos adjuntos a un documento dentro de una instancia de Acumatica o la adjunción de archivos desde dentro de un archivo .Zip a un documento dentro de una instancia de Acumatica.
Joshua van Hoesen | 29 de marzo de 2022

Zip Up Acumatica - Manipulación de archivos Parte 1 .Zip

Introducción

En nuestros años ( ASI LLC ) desarrollando soluciones dentro del marco de Acumatica hemos experimentado múltiples instancias en las que archivos de un tipo u otro necesitan ser generados y manipulados dentro del sistema.

Un ejemplo de uso que revisaremos en este artículo es el archivado de archivos adjuntos a un documento dentro de una instancia de Acumatica -o- la adjunción de archivos desde dentro de un archivo .Zip a un documento dentro de una instancia de Acumatica.

.zip - PX.común.estándar

Para utilizar archivos .ZIP dentro de Acumatica necesitará añadir una referencia a la .dll PX.Common.Std dentro de su proyecto. Este .dll se encuentra en la carpeta bin de la instalación de la instancia.

ZipArchive

CrearDesde

Este método estático devuelve una instancia de ZipArchive que representa un archivo .ZIP. Este método tomará flujo os y bool onlyRead como parámetros.

El siguiente ejemplo de código ilustra la creación de un nuevo archivo zip utilizando un nuevo MemoryStream y estableciendo el parámetro onlyRead como false para permitir la adición de archivos a nuestro archivo .Zip creado.

GIST: [Creación del archivo .Zip (github.com)]

CreateFrom también se utiliza al abrir un archivo .ZIP preexistente. Para abrir un archivo preexistente primero debe recuperar su byte[] y crear un nuevo MemoryStream a partir de los datos, estableciendo la opción bool onlyRead como true.

GIST: [Abrir archivo .Zip existente (github.com)]

AddFile

Este método public void añade un archivo con el nombre dado y una matriz byte[] del archivo que se incluirá en el archivo .Zip.

GIST: [Adición de fichero al archivo .Zip creado (github.com)]

ObtenerArchivos

Este método devuelve una lista de ficheros dentro del archivo .Zip; la información de cada fichero se encapsula dentro de la clase interna ItemInfo

GIST: [Iterar a través de nombres de archivo en Archive (github.com)]

GetItems

Este método se utiliza cuando sólo se desea extraer los ficheros de un directorio específico dentro del archivo. Utiliza el parámetro de cadena directorio.

AbrirLeer

Este método devuelve un flujo de un fichero dentro del archivo. El archivo se especifica proporcionando un nombre de archivo, este nombre

GIST: [Recuperar un archivo de ZipArchive (github.com)]

Ejemplos

A continuación encontrará ejemplos de cómo crear un nuevo archivo .Zip dentro de Acumatica, así como de cómo tomar un archivo .Zip adjunto a un documento y leer/guardar su contenido.

Creación de archivos

El siguiente ejemplo recuperará la lista de archivos adjuntos a un documento de Acumatica y creará un archivo .Zip que se adjuntará a continuación.

GIST: [Abre un archivo zip adjunto a un documento de Acumatica (github.com)]

Recuperación de archivos

El siguiente ejemplo recuperará el archivo .Zip adjunto a un documento de Acumatica y adjuntará todos los documentos dentro de ese archivo al documento de origen.

GIST: [Botón para crear archivo .Zip a partir de archivos adjuntos al documento de Acumatica (github.com)]

Conclusión

Con el uso de las Bibliotecas proporcionadas dentro de una instalación de Acumatica ERP, podemos crear y manipular archivos .Zip

¡Feliz codificación!

Autor del blog

Ingeniero jefe de software en Accounting System Integrators. Dirige el equipo de desarrollo que ha creado NonProfitPlus, un software de gestión empresarial diseñado pensando en las organizaciones sin ánimo de lucro e impulsado por Acumatica ERP para ofrecer un conjunto de aplicaciones totalmente integradas.

Reciba las actualizaciones del blog en su bandeja de entrada.