Este é o site histórico da documentação 4D. As documentações estão sendo movidas progressivamente para developer.4d.com

Página Inicial

 
4D v19.8
ZIP Create archive

ZIP Create archive 


 

ZIP Create archive ( arquivoOuPasta|estruturaZip ; arquivoDestino {; opções} ) -> Resultado 
Parâmetro Tipo   Descrição
arquivoOuPasta|estruturaZip  Objeto in Objeto arquivo ou pasta a comprimir
arquivoDestino  Objeto in Arquivo destino para o arquivo
opções  Inteiro longo in Se arquivoOuPasta usado: ZIP sem anexar pasta
Resultado  Objeto in estado objeto

O  comando ZIP Create archive cria um objeto achivo ZIP compactado e devolve o estatus da operação. 

Pode passar um objeto arquivoOuPasta ou um objeto estruturaZip como primeiro parâmetro.

  • arquivoOuPastaa
    Com esta sintaxe, simplesmente passe o objeto File ou Folder a compressar. Neste caso, pode utilizar o parâmetro opções (ver abaixo).
  • estruturaZip
    Com esta sintaxe, passe um objeto que descreve o objeto de arquivo ZIP como parâmetro (se for passado, o parâmetro opções se ignora neste caso). As propriedades abaixo estão disponíveis para definir a estrutura:

    Propriedade
     Tipo Descrição
    compression  entero largo
    Constante
    ZIP Compression none
    ZIP Compression standard
    encryption  entero largo O cifrado a utilizar se for definido uma senha:
     
    Constante
    ZIP Encryption AES128
    ZIP Encryption AES192
    ZIP Encryption AES256
    ZIP Encryption none
    password  texto Uma senha a utilizar se precisar cifrado.
    files  collection
    • uma coleção de objetos File ou Folder , ou
    • uma coleção de objetos com as  propriedades abaixo:
      Propiedad Tipo Descripción
      source objeto File ou Folder
      destination texto (opcional) - Especifique uma rota de arquivo relativa para mudar a organização dos conteúdos de arquivo
      option número (opcional) - ZIP Ignore invisible files ou 0 para comprimir todo o arquivo
    callback  formula Uma fórmula de retrochamada que receberá o progresso de compressão (0 - 100) em $1.


No parâmetro arquivoDestino, passe um objeto File que descreva o arquivo ZIP a criar (nome, local, etc.). Se recomenda utilizar a extensão ".zip" se quiser que o arquivo ZIP seja processado automaticamente por qualquer software.

 

O parâmetro opcional opções  lhe permite comprimir só o contúdo de arquivoOuPasta (ou seja, excluir a pasta anexa): de forma predeterminada, quando passar Folder no parâmetro arquivoOuPasta, ZIP Create archive comprimirá a carpeta e seu conteúdo, para que a operação de descompressão volte a criar uma pasta. Se quiser que a operação de descompresão comprima só o conteúdo da pasta, passe a constante ZIP Without enclosing folder no parâmetro opções.


Quando criar um arquivo, pode utilizar o ZIP Read archive para acessá-lo (ver Propriedades).

O objeto de estado devolvido contém as propriedades abaixo:

 

Propriedade Tipo Descrição
statusText texto Mensagem de erro (se houver):
  • Não pode abrir o arquivo ZIP
  • Não pode criar um arquivo ZIP
  • Precisa senha para o cifrado
status entero largo Código de estado
success booleano True se o arquivo for criado com sucesso, do contrário false

Para comprimir um 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 um  Folder sem a pasta em si:

 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 uma estrutura de arquivo ZIP com uma senha e barra de progresso:

 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))

Se quiser passar uma coleção de pastas e arquivos para comprimir ao 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 também 

Arquivos ZIP
ZIP Read archive

 
PROPRIEDADES 

Produto: 4D
Tema: Arquivo e Pasta
Número 1640

This command can be run in preemptive processes

 
CONTEÚDO DA PÁGINA 
 
HISTÓRIA 

Criado por: 4D v18

 
ARTICLE USAGE

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