ZIP Create archive
ZIP Create archive ( fileToZip : 4D.File ; destinationFile : 4D.File ) : Object
ZIP Create archive ( folderToZip : 4D.Folder ; destinationFile : 4D.File { ; options : Integer }) : Object
ZIP Create archive ( zipStructure : Object ; destinationFile : 4D.File ) : Object
| Parámetros | Tipo | Descripción | |
|---|---|---|---|
| fileToZip | 4D.File | → | Objeto archivo o carpeta a comprimir |
| folderToZip | 4D.Folder | → | Objeto archivo o carpeta a comprimir |
| zipStructure | Object | → | Objeto archivo o carpeta a comprimir |
| destinationFile | 4D.File | → | Archivo de destino del archivo |
| options | Integer | → | Opción folderToZip: ZIP Without enclosing folder |
| Resultado | Object | ← | Objeto estado |
Historia
| Lanzamiento | Modificaciones |
|---|---|
| 19 R3 | Adición de las propiedades ZIP Compression LZMA, ZIP Compression xy, .level |
| 18 | Añadidos |
Descripción
El comando ZIP Create archive crea un objeto archivo ZIP comprimido y devuelve el estado de la operación.
Puede pasar un objeto 4D.File, 4D.Folder, o una estructura zip como primer parámetro:
-
fileToZip: pase simplemente un
4D.Filea comprimir. -
folderToZip: pase un
4D.Folderpara comprimir. En este caso, el parámetro options permite comprimir sólo el contenido de la carpeta (es decir, excluir la carpeta padre). Por defecto,ZIP Create archivecomprimirá la carpeta y su contenido, de modo que la operación de descompresión volverá a crear una carpeta. Si desea que la operación de descompresión restaure sólo el contenido de la carpeta, pase la constanteZIP Without enclosing folderen el parámetro options. -
zipStructure: pase un objeto que describa el objeto ZIP archivo. Las siguientes propiedades están disponibles para definir la estructura:
| Propiedad | Tipo | Descripción | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| compression | Integer |
| ||||||||||||
| level | Integer | Nivel de compresión. Valores posibles: 1 a 10. Un valor más bajo producirá un archivo más grande, mientras que un valor más alto producirá un archivo más pequeño. Sin embargo, el nivel de compresión influye en el rendimiento. Default values if omitted:
| ||||||||||||
| encryption | Integer | The encryption to use if a password is set:
| ||||||||||||
| contraseña | Text | Una contraseña a utilizar si se requiere encriptación. | ||||||||||||
| Histórico | Collection | 4D.File o 4D.Folder o
| ||||||||||||
| retrollamada | 4D.Function | Una fórmula de retrollamada que recibirá la progresión de la compresión (0 - 100) en $1. |
En el parámetro destinationFile, pase un objeto 4D.File que describa el archivo ZIP a crear (nombre, ubicación, etc.). Se aconseja utilizar la extensión ".zip" si quiere que el archivo ZIP sea procesado automáticamente por cualquier software.
Una vez creado un archivo, puede utilizar el comando ZIP Read archive para acceder a él.
Status object
El objeto status devuelto contiene las siguientes propiedades:
| Propiedad | Tipo | Descripción |
|---|---|---|
| statusText | Text | Error message (if any):
|
| status | Integer | Código de estado |
| success | Boolean | True si el archivo se ha creado con éxito, si no, false |
Ejemplo 1
Para comprimir un archivo 4D.File:
var $file; $destination : 4D.File
var $status : Object
$destination:=Folder(fk desktop folder).file("MyDocs/file.zip")
$file:=Folder(fk desktop folder).file("MyDocs/text.txt")
$status:=ZIP Create archive($file;$destination)
Ejemplo 2
Para comprimir una carpeta 4D.Folder sin la carpeta en sí:
var $folder : 4D.Folder
var $destination : 4D.File
var $status : Object
$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)
Ejemplo 3
Para comprimir una estructura de archivo ZIP con una contraseña y una barra de progreso:
var $destination : 4D.File
var $zip;$status : Object
var progID : Integer
$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 //utilizamos el componente 4D Progress
$status:=ZIP Create archive($zip;$destination)
Progress QUIT(progID)
myFormulaCompressingMethod:
#DECLARE ($current : Integer)
Progress SET PROGRESS(progID;Num($current /100))
Ejemplo 4
Quiere pasar una colección de carpetas y archivos para comprimir al objeto zipStructure:
var $destination : 4D.File
var $zip;$err : Object
$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)
Ejemplo 5
Desea utilizar un algoritmo de compresión alternativo con un alto nivel de compresión:
var $destination : 4D.File
var $zip; $err : Object
$zip:=New object
$zip.files:=New collection
$zip.files.push(Folder(fk desktop folder).folder("images"))
$zip.compression:=ZIP Compression LZMA
$zip.level:=7 //por defecto es 4
$destination:=Folder(fk desktop folder).file("images.zip")
$err:=ZIP Create archive($zip; $destination)
Ver también
ZipArchive Class
ZipFile Class
ZipFolder Class
ZIP Read archive
Propiedades
| Número de comando | 1640 |
| Hilo seguro | sí |