Vous êtes sur le site Web historique de la documentation de 4D. Les documentations sont progressivement déplacées vers developer.4d.com

Accueil

 
4D v19.8
ZIP Créer archive

ZIP Créer archive 


 

ZIP Créer archive ( fichierOuDossier | structureZip ; fichierDestination {; options} ) -> Résultat 
Paramètre Type   Description
fichierOuDossier | structureZip  Objet in Objet fichier ou dossier à compresser
fichierDestination  Objet in Fichier de destination de l'archive
options  Entier long in Si fichierOuDossier est utilisé : ZIP sans dossier parent
Résultat  Objet in Objet statut

La commande ZIP Créer archive crée un objet archive ZIP compressé et retourne le statut de l'opération.

Vous pouvez passer soit un objet fichierOuDossier ou structureZip en tant que premier paramètre.

  • fichierOuDossier 
    Avec cette syntaxe, vous passez simplement l'objet Fichier ou Dossier à compresser. Dans ce cas, vous pouvez utiliser le paramètre options (voir ci-dessous).
  • structureZip 
    Avec cette syntaxe, vous passez un objet décrivant l'objet d'archive ZIP en tant que paramètre (s'il est passé, le paramètre options est ignoré dans ce cas). Les propriétés suivantes sont disponibles pour définir la structure:

    Propriété  Type Description
    compression  entier
    Constante Comment
    ZIP Compression aucune

    Aucune compression.

    ZIP Compression standard

    Compression standard. (par défaut)

    encryption  entier Le chiffrement à utiliser si un mot de passe est défini :
     
    Constante Comment
    ZIP Chiffrement AES128

    Chiffrement AES à l'aide d'une clé 128 bits.

    ZIP Chiffrement AES192

    Chiffrement AES à l'aide d'une clé 192 bits.

    ZIP Chiffrement AES256

    Chiffrement AES à l'aide d'une clé 256 bits. (par défaut si le mot de passe est défini)

    ZIP Chiffrement aucun

    Les données ne sont pas chiffrées. (par défaut si le mot de passe est défini)

    password  texte Un mot de passe à utiliser si le chiffrement est requis. 
    files  collection
    • une collection d'objets Fichier ou Dossier, ou
    • une collection d'objets avec les propriétés suivantes :
      Propriété Type Description
      source objet Fichier ou Dossier
      destination texte (optionnel) - Indique un chemin relatif pour modifier l'organisation du contenu de l'archive
      option numérique (optionnel) - ZIP Ignorer fichiers invisibles ou 0 pour compresser tout le fichier
    callback  formule Un formule callback qui recevra la progression de la compression (0 - 100) dans $1. 


Dans le paramètre fichierDestination, passez un objet Fichier décrivant l'archive ZIP à créer (nom, emplacement, etc.). Il est conseillé d'utiliser l'extension ".zip" si vous souhaitez que l'archive ZIP soit traitée automatiquement par un logiciel.

Le paramètre optionnel options vous permet de compresser uniquement le contenu de fichierOuDossier (c'est-à-dire, exclure le dossier qui le contient) : par défaut, lorsque vous passez un Dossier dans le paramètre fichierOuDossier, ZIP Créer archive compressera le dossier et son contenu, de sorte que l'opération de décompression recrée un dossier. Si vous souhaitez que l'opération de décompression compresse uniquement le contenu du dossier, passez la constante ZIP Sans dossier parent dans le paramètre options.

Une fois que l'archive est créée, vous pouvez utiliser ZIP Lire archive pour y accéder (voir Propriétés).

L'objet statut retourné contient les propriétés suivantes :

 

Propriété Type Description
statusText texte Message d'erreur (le cas échéant) :
  • Ne peut pas ouvrir d'archive ZIP
  • Ne peut pas créer d'archive ZIP
  • Mot de passe requis pour le chiffrement 
status entier long Code du statut
success booléen Vrai si l'archive est créée avec succès, sinon Faux.

Pour compresser un Fichier:

 C_OBJET($file;$destination;$status)
 
 $destination:=Dossier(fk dossier bureau).file("MyDocs/file.zip")
 $file:=Dossier(fk dossier bureau).file("MyDocs/text.txt")
 
 $status:=ZIP Créer archive($file;$destination)

Pour compresser un Dossier sans le dossier lui-même :

 C_OBJET($fiolder;$destination;$status)
 
 $destination:=Dossier(fk dossier bureau).file("MyDocs/Images.zip")
 $folder:=Dossier(fk dossier bureau).folder("MyDocs/Images")
 
 $status:=ZIP Créer archive($folder;$destination;ZIP Sans dossier parent)

Pour compresser une structure d'archive ZIP à l'aide d'un mot de passe et d'une barre de progression :

 C_OBJET($zip;$status;$destination)
 C_ENTIER LONG(progID)
 
 $destination:=Dossier(fk desktop folder).file("MyDocs/Archive.zip")
 
 $zip:=Creer objet
 $zip.files:=Dossier(fk desktop folder).folder("MyDocs/Resources").folders()
 $zip.password:="password"
 $zip.callback:=Formule(myFormulaCompressingMethod($1))
 
 progID:=Progress New //nous utilisons le composant 4D Progress
 
 $status:=ZIP Créer archive($zip;$destination)
 
 Progress QUIT(progID)

myFormulaCompressingMethod :

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

Vous souhaitez passer une collection de dossiers et de fichiers à compresser pour l'objet structureZip :

 C_OBJET($zip;$destination;$err)
 $zip:=Creer objet
 $zip.files:=Creer collection
 $zip.files.push(Creer objet("source";Dossier(fk dossier bureau).file("Tests/text.txt")))
 $zip.files.push(Creer objet("source";Dossier(fk dossier bureau).file("Tests/text2.txt")))
 $zip.files.push(Creer objet("source";Dossier(fk dossier bureau).file("Images/image.png")))
 
 $destination:=Dossier(fk dossier bureau).file("file.zip")
 $err:=ZIP Créer archive($zip;$destination)



Voir aussi  

A propos des archives ZIP
ZIP Lire archive

 
PROPRIÉTÉS 

Produit : 4D
Thème : Fichier et dossier
Numéro : 1640
Nom intl. : ZIP Create archive

Commande(s) éligible(s) à l'exécution dans un process préemptif

 
PAGE CONTENTS 
 
HISTORIQUE 

Créé : 4D v18

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v19.5)
4D - Langage ( 4D v19.6)
4D - Langage ( 4D v19.7)
4D - Langage ( 4D v19.8)