Este es el sitio web histórico de la documentación de 4D. La documentación se está trasladando progresivamente a developer.4d.com

Inicio

 
4D v19.8
ZIP Create archive

ZIP Create archive 


 

ZIP Create archive ( archivoOCarpeta ; archivoDestino {; options} ) -> Resultado 
Parámetro Tipo   Descripción
archivoOCarpeta  Objeto in Objeto archivo o carpeta a comprimir
archivoDestino  Objeto in Archivo de destino del archivo
options  Entero largo in Si se utiliza archivoOCarpeta: ZIP en carpeta padre
Resultado  Objeto in Objeto status

El comando ZIP Create archive crea un objeto achivo ZIP comprimido y devuelve el estatus de la operación. 

Puede pasar un objeto archivoOCarpeta o un objeto estructuraZip como primer parámetro.

  • archivoOCarpeta
    Con esta sintaxis, simplemente pase el objeto File o Folder a comprimir. En este caso, puede utilizar el parámetro opciones (ver abajo).
  • estructuraZip
    Con esta sintaxis, pase un objeto que describe el objeto de archivo ZIP como parámetro (si se pasa, el parámetro opciones se ignora en este caso). Las siguientes propiedades están disponibles para definir la estructura:

    Propiedad
     Tipo Descripción
    compression  entero largo
    Constante
    ZIP Compression none
    ZIP Compression standard
    encryption  entero largo El cifrado a utilizar si se define una contraseña:
     
    Constante
    ZIP Encryption AES128
    ZIP Encryption AES192
    ZIP Encryption AES256
    ZIP Encryption none
    password  texto Una contraseña a utilizar si se requiere cifrado.
    files  collection
    • una colección de objetos File o Folder , o
    • una colección de objetos con las siguientes propiedades:
      Propiedad Tipo Descripción
      source objeto File o Folder
      destination texto (opcional) - Especifique una ruta de archivo relativa para cambiar la organización de los contenidos del archivo
      option número (opcional) - ZIP Ignore invisible files o 0 para comprimir todo el archivo
    callback  formula Una fórmula de retrollamada que recibirá el progreso de compresión (0 - 100) en $1.


En el parámetro archivoDestino, pase un objeto File que describa el archivo ZIP a crear (nombre, ubicación, etc.). Se recomienda utilizar la extensión ".zip" si desea que el archivo ZIP sea procesado automáticamente por cualquier software.

 

El parámetro opcional opciones  le permite comprimir solo el contenido de archivoOCarpeta (es decir, excluir la carpeta adjunta): de forma predeterminada, cuando pasa un Folder en el parámetro archivoOCarpeta, ZIP Create archive comprimirá la carpeta y su contenido, para que la operación de descompresión vuelva a crear una carpeta. Si desea que la operación de descompresión comprima solo el contenido de la carpeta, pase la constante ZIP Without enclosing folder en el parámetro opciones.


Una vez que se crea un archivo, puede utilizar el ZIP Read archive para acceder a él (ver Propiedades).

El objeto de estado devuelto contiene las siguientes propiedades:

 

Propiedad Tipo Descripción
statusText texto Mensaje de error (si lo hay):
  • No puede abrir el archivo ZIP
  • No puede crear un archivo ZIP
  • Se requiere contraseña para el cifrado
status entero largo Código de estado
success booleano True si el archivo es creado con éxito, de lo contrario false

Para comprimir un File:

 C_OBJECT($file;$destination;$status)
 
 $destination:=Folder(fk desktop folder).file("MyDocs/file.zip")
 $file:=Folder(fk desktop folder).file("MyDocs/text.txt")
 
 $status:=ZIP Create archive($file;$destination)

Para comprimir un  Folder sin la carpeta en sí:

 C_OBJECT($folder;$destination;$status)
 
 $destination:=Folder(fk desktop folder).file("MyDocs/Images.zip")
 $folder:=Folder(fk desktop folder).folder("MyDocs/Images")
 
 $status:=ZIP Create archive($folder;$destination;ZIP Without enclosing folder)

Para comprimir una estructura de archivo ZIP con una contraseña y barra de progreso:

 C_OBJECT($zip;$status;$destination)
 C_LONGINT(progID)
 
 $destination:=Folder(fk desktop folder).file("MyDocs/Archive.zip")
 
 $zip:=New object
 $zip.files:=Folder(fk desktop folder).folder("MyDocs/Resources").folders()
 $zip.password:="password"
 $zip.callback:=Formula(myFormulaCompressingMethod($1))
 
 progID:=Progress New //we use the 4D Progress component
 
 $status:=ZIP Create archive($zip;$destination)
 
 Progress QUIT(progID)

myFormulaCompressingMethod:

 C_LONGINT($1)
 Progress SET PROGRESS(progID;Num($1/100))

Desea pasar una colección de carpetas y archivos para comprimir al objeto zipStructure:

 C_OBJECT($zip;$destination;$err)
 $zip:=New object
 $zip.files:=New collection
 $zip.files.push(New object("source";Folder(fk desktop folder).file("Tests/text.txt")))
 $zip.files.push(New object("source";Folder(fk desktop folder).file("Tests/text2.txt")))
 $zip.files.push(New object("source";Folder(fk desktop folder).file("Images/image.png")))
 
 $destination:=Folder(fk desktop folder).file("file.zip")
 $err:=ZIP Create archive($zip;$destination)



Ver también 

Sobre los archivos ZIP
ZIP Read archive

 
PROPIEDADES 

Producto: 4D
Tema: Archivo y carpeta
Número 1640

This command can be run in preemptive processes

 
CONTENIDO DE LA PÁGINA 
 
HISTORIA 

Creado por: 4D v18

 
ARTICLE USAGE

Manual de lenguaje 4D ( 4D v19.5)
Manual de lenguaje 4D ( 4D v19.6)
Manual de lenguaje 4D ( 4D v19.7)
Manual de lenguaje 4D ( 4D v19.8)