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âmetro | Tipo | Descrição | |
|---|---|---|---|
| fileToZip | 4D. File | → | Objeto File ou Folder a comprimir | 
| folderToZip | 4D. Folder | → | Objeto File ou Folder a comprimir | 
| zipStructure | Object | → | Objeto File ou Folder a comprimir | 
| destinationFile | 4D. File | → | Arquivo destino para o arquivo | 
| options | Integer | → | Opção folderToZip: ZIP Without enclosing folder | 
| Resultados | Object | ← | Objeto de estado | 
História
| Release | Mudanças | 
|---|---|
| 19 R3 | Adição das propriedades ZIP Compression LZMA,ZIP Compression xy,.level | 
| 18 | Adicionado | 
Descrição
O comando ZIP Create archive  cria um objeto de arquivo ZIP comprimido e retorna o status da operação.
You can pass a 4D. File, a 4D. Folder, or a zip structure object as first parameter:
- 
fileToZip: você simplesmente passa um 4D.Filepara compactar.
- 
folderToZip: você passa um 4D.Folderpara compactar. In this case, the options parameter allows you to compress only the contents of the folder (i.e., exclude the enclosing folder). By default,ZIP Create archivewill compress the folder and its contents, so that the decompressing operation will recreate a folder. If you want the decompressing operation to restore only the contents of the folder, pass theZIP Without enclosing folderconstant in the options parameter.
- 
zipStructure: pode passar um objeto descrevendo o objeto ZIP archive. As propriedades abaixo estão disponíveis para definir a estrutura: 
| Propriedade | Tipo | Descrição | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| compression | Integer | ZIP Compression standard: Deflate compression (default)ZIP Compression LZMA: LZMA compressionZIP Compression XZ: XZ compressionZIP Compression none: No compression | ||||||||||||
| level | Integer | Nível de compressão. Valores possíveis: de 1 a 10. Um valor pequeno produz um arquivo de maior tamanho, enquanto um valor grande produz um arquivo de tamanho menor. O nível de compactação tem um impacto na performance. Default values if omitted: ZIP Compression standard: 6ZIP Compression LZMA: 4ZIP Compression XZ: 4 | ||||||||||||
| encryption | Integer | The encryption to use if a password is set: ZIP Encryption AES128: AES encryption using 128-bit key.ZIP Encryption AES192: AES encryption using 192-bit key.ZIP Encryption AES256: AES encryption using 256-bit key (default if password is set).ZIP Encryption none: Data is not encrypted (default if no password is set) | ||||||||||||
| senha | Text | Uma senha a usar se a criptografia for necessária. | ||||||||||||
| files | Collection | 4D.Fileor4D.Folderobjects or
 | ||||||||||||
| callback | 4D. Function | Uma fórmula de callback (retrochamada) que recebe o progresso da compactação (0-100) em $1. | 
No parâmetro destinationFile, passe um objeto 4D.File que descreva o arquivo ZIP a ser criado (nome, local, etc.). É recomendado usar a extensão ".zip" se quiser que o arquivo ZIP seja processado automaticamente por um software.
Depois que um arquivo é criado, você pode usar o comando ZIP Read archive para acessá-lo.
Status object
O estado do objeto retornado contém as propriedades abaixo:
| Propriedade | Tipo | Descrição | 
|---|---|---|
| statusText | Text | Error message (if any): | 
| status | Integer | Código de estado | 
| success | Parâmetros | True se o arquivo for criado com sucesso, senão false | 
Exemplo 1
Para compactar um 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)
Exemplo 2
Para comprimir uma 4D.Folder sem a própria pasta:
 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)
Exemplo 3
Para compactar uma estrutura de arquivo ZIP sem uma senha e barra de progresso:
 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 //we use the 4D Progress component
 $status:=ZIP Create archive($zip;$destination)
 Progress QUIT(progID)
myFormulaCompressingMethod:
 #DECLARE ($current : Integer)
 Progress SET PROGRESS(progID;Num($current /100))
Exemplo
Pode passar uma coleção de pastas e arquivos para compactar ao 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)
Exemplo 2
Deseja utilizar um algoritmo de compressão alternativo com um elevado nível de compressão:
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 //padrão é 4
$destination:=Folder(fk desktop folder).file("images.zip")
$err:=ZIP Create archive($zip; $destination)
Veja também
ZipArchive Class
ZipFile Class
ZipFolder Class
ZIP Read archive
Propriedades
| Número de comando | 1640 | 
| Thread safe | ✓ |