Ir al contenido

ZIP Extract

Tipo: zip-extract  ·  Paquete: ZIP Activities v1.0.5  ·  Salida: string

Extrae el contenido de un archivo ZIP a una carpeta de destino. Devuelve la ruta de la carpeta donde se extrajo. Útil para procesar archivos que llegan comprimidos (un correo con un ZIP de facturas).

Descomprime el ZIP de source dentro de destination, conservando las subcarpetas que trae.

  • Carpeta de destino: se crea si no existe. Si ya tiene archivos, los conserva; los que coinciden en nombre se reemplazan (con overwrite = true, por defecto).
  • Con overwrite = false, la actividad falla al encontrar el primer archivo que ya existe; los archivos anteriores a ese ya quedaron extraídos.
  • Seguridad: si una ruta interna del ZIP intentara salir de destination, la actividad falla sin escribir fuera de ella.
  • El ZIP original no se modifica ni se borra. ZIP con contraseña no se admiten.
  • En el log queda cuántos archivos hay en la carpeta de destino tras extraer (incluye los que ya estaban).
ParámetroTipoPor defectoDescripción
sourcestring—Ruta del archivo ZIP a extraer.
destinationstring—Carpeta donde extraer el contenido.
ParámetroTipoPor defectoDescripción
overwritebooltrueReemplazar los archivos que ya existan en destination.

Devuelve un string con la ruta de la carpeta de destino (tal como la indicaste en destination). Para obtener los archivos extraídos, lista esa carpeta con List Files.

MensajeCausa y solución
No se encontró el archivo ZIP.source no existe. Compruébalo con File Exists.
End of Central Directory record could not be found.El archivo no es un ZIP válido (dañado, incompleto o de otro formato, como .rar o .7z).
The file '…' already exists.overwrite es false y un archivo del ZIP ya existe en el destino. Extrae a una carpeta vacía o usa overwrite = true.
Extracting Zip entry would have resulted in a file outside the specified destination directory.El ZIP contiene rutas que apuntan fuera de la carpeta de destino. No es un ZIP confiable.
'source' es obligatorio. / 'destination' es obligatorio.La expresión del parámetro dio nulo.

Extraer un ZIP a una carpeta propia de la ejecución y procesar sus archivos:

ZIP Extract source = rutaZip destination = pathJoin("C:/temp/extraido", now().ToString("yyyyMMdd_HHmmss")) → output: carpeta
List Files path = carpeta pattern = "*.xlsx" recursive = true → output: archivos
For Each items = archivos itemVariable = ruta
└─ activities:
Read Excel Sheet path = ruta → output: datos
... procesar ...