PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

  • Condition d'utilisation
  • Niveau de compression des archives ZIP ou 7z
  • Codes d'erreur
  • Ajout d'un fichier déjà présent dans l'archive
  • Indice des fichiers dans l'archive
  • Chemin conservé (archives au format WDZ et ZIP)
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Ajoute et compresse automatiquement un fichier (de n'importe quel type) dans une archive de type CAB, ZIP, WDZ, 7z, TAR ou TGZ (TAR.GZ). Cette fonction n'est pas utilisable sur les archives de type RAR.
Pour ajouter les fichiers d'un répertoire, utilisez la fonction <Variable zipArchive>.AjouteRépertoire.
Nouveauté 28
Universal Windows 10 App Le type zipArchive est désormais disponible en mode Universal Windows 10 App.
Exemple
MonArchive est un zipArchive
ResCréation est un entier
ResAjoutFichier est un entier
// Création de l'archive
ResCréation = MonArchive.Crée("C:\Temp\Archive.zip")
SI ResCréation = 0 ALORS
// Ajout d'un fichier dans une archive
ResAjoutFichier = MonArchive.AjouteFichier(...
"C:\MonRépertoire\MesFichiers\Fichier.pdf", zipDisque)
FIN
// Affichage du message d'erreur si le fichier n'a pas été ajouté
SI ResAjoutFichier <> 0 ALORS
Erreur(zipMsgErreur(ResAjoutFichier))
FIN
Syntaxe

Ajouter un fichier en précisant la portion de chemin à conserver Masquer les détails

<Résultat> = <Archive>.AjouteFichier(<Chemin d'accès du fichier> [, <Portion du chemin à conserver> [, <Progression>]])
<Résultat> : Entier
  • 0 si l'ajout a été effectué,
  • un code d'erreur (valeur supérieure à 0) dans le cas contraire. Pour plus de détails sur ces codes d'erreur, consultez les remarques.
<Archive> : Variable de type zipArchive
Nom d'une variable de type zipArchive correspondant à l'archive dans laquelle le fichier doit être ajouté.
<Chemin d'accès du fichier> : Chaîne de caractères
Chemin d'accès du fichier à ajouter dans l'archive (260 caractères maximum, 90 maximum dans le cas d'une archive au format TAR ou TGZ (TAR.GZ)). Ce chemin peut être un chemin complet ou relatif au répertoire en cours. Il n'est pas possible d'utiliser des caractères jokers (*, ?) dans le nom du fichier.
La taille de ce fichier doit être inférieure à 4 Go. Dans le cas contraire, une erreur est générée.
Universal Windows 10 App Le chemin d'accès au fichier est un chemin complet ou relatif au répertoire de travail de l'application (connu avec la fonction fRepDonnées). Seuls les fichiers présents dans le répertoire de travail peuvent être ajoutés à l'archive.
<Portion du chemin à conserver> : Constante optionnelle
Indique la portion de chemin du fichier à conserver dans l'archive :
zipAucunConserve uniquement le nom et l'extension du fichier. Par exemple : NomFichier.pdf
zipDisqueConserve le chemin complet et absolu du fichier (nom du disque, des répertoires, du fichier et l'extension du fichier). Par exemple : C:\Répertoire\Fichiers\NomFichier.pdf
Pour le format ZIP : Cette constante n'a pas d'effet.
Pour le format 7z : Cette constante a le même effet que la constante zipRépertoire.
LinuxiPhone/iPadWidget IOSMac Catalyst Cette constante n'est pas disponible car il n'y a pas de racine de lecteur.
AndroidWidget Android Cette constante aura le même effet que la constante zipRépertoire.
zipRépertoire
(Valeur par défaut)
Conserve les différents répertoires composant le chemin, le nom et l'extension du fichier. Par exemple : \Répertoire\Fichiers\NomFichier.pdf

Si vous manipulez une archive au format .CAB, seule la constante zipAucun est prise en compte. En effet, le format .CAB ne permet pas d'enregistrer des chemins à l'intérieur de l'archive.
Universal Windows 10 App Ce paramètre n'est pas disponible : seuls le nom du fichier et son extension sont conservés.
<Progression> : Nom de champ ou nom de procédure
Mode de gestion de la jauge. Ce paramètre peut correspondre :
Si vous manipulez une archive au format TAR ou TGZ (TAR.GZ), la jauge est mise à jour uniquement à la fin de l'ajout du fichier.
WEBDEV - Code Serveur La procédure doit être une procédure serveur.

Ajouter un fichier en précisant le chemin à ignorer Masquer les détails

<Résultat> = <Archive>.AjouteFichier(<Chemin d'accès du fichier> [, <Portion du chemin à ignorer> [, <Progression>]])
<Résultat> : Entier
  • 0 si l'ajout a été effectué,
  • un code d'erreur (valeur supérieure à 0) dans le cas contraire. Pour plus de détails sur ces codes d'erreur, consultez les Remarques.
<Archive> : Variable de type zipArchive
Nom d'une variable de type zipArchive correspondant à l'archive dans laquelle le fichier doit être ajouté.
<Chemin d'accès du fichier> : Chaîne de caractères
Chemin d'accès du fichier à ajouter dans l'archive (260 caractères maximum, 90 maximum dans le cas d'une archive au format TAR ou TGZ (TAR.GZ)). Ce chemin peut être un chemin complet ou relatif au répertoire en cours. Il n'est pas possible d'utiliser des caractères jokers (*, ?) dans le nom du fichier.
La taille de ce fichier doit être inférieure à 4 Go. Dans le cas contraire, une erreur est générée.
<Portion du chemin à ignorer> : Chaîne de caractères optionnelle
Indique la portion de chemin du fichier à ne pas conserver dans l'archive.
Par exemple, en WINDEV, si le chemin complet du fichier ajouté dans l'archive est : "C:\Mes Documents\Travail\Rapport.doc" et si le paramètre <Portion du chemin à ignorer> vaut "C:\Mes Documents\", seule la portion "Travail\Rapport.doc" sera conservée.
<Progression> : Nom de champ ou nom de procédure
Mode de gestion de la jauge. Ce paramètre peut correspondre :
Si vous manipulez une archive au format TAR ou TGZ (TAR.GZ), la jauge est mise à jour uniquement à la fin de l'ajout du fichier.
WEBDEV - Code Serveur La procédure doit être une procédure serveur.

Ajouter un fichier présent dans un buffer (format WDZ et ZIP uniquement) Masquer les détails

<Résultat> = <Archive>.AjouteFichier(<Fichier à ajouter> , <Gestion du buffer> , <Chemin à conserver> [, <Progression>])
<Résultat> : Entier
  • 0 si l'ajout a été effectué,
  • un code d'erreur (valeur supérieure à 0) dans le cas contraire. Pour plus de détails sur ces codes d'erreur, consultez les Remarques.
<Archive> : Variable de type zipArchive
Nom d'une variable de type zipArchive correspondant à l'archive dans laquelle le fichier doit être ajouté.
<Fichier à ajouter> : Buffer
Buffer correspondant au contenu du fichier à ajouter dans l'archive.
<Gestion du buffer> : Constante
Mode de gestion du buffer :
zipEnMémoireSauve le contenu du buffer (c'est-à-dire le fichier) dans l'archive.
<Chemin à conserver> : Chaîne de caractères
Chemin du fichier ou nom du fichier associé au buffer et à conserver dans l'archive.
<Progression> : Nom de champ ou nom de procédure
Mode de gestion de la jauge. Ce paramètre peut correspondre :
Si vous manipulez une archive au format TAR ou TGZ (TAR.GZ), la jauge est mise à jour uniquement à la fin de l'ajout du fichier.
WEBDEV - Code Serveur La procédure doit être une procédure serveur.

Ajouter un fichier en utilisant une variable de type zipFichierArchivé Masquer les détails

<Résultat> = <Archive>.AjouteFichier(<Fichier> [, <Progression>])
<Résultat> : Entier
  • 0 si l'ajout a été effectué,
  • un code d'erreur (valeur supérieure à 0) dans le cas contraire. Pour plus de détails sur ces codes d'erreur, consultez les Remarques.
<Archive> : Variable de type zipArchive
Nom d'une variable de type zipArchive correspondant à l'archive dans laquelle le fichier doit être ajouté.
<Fichier> : Variable de type zipFichierArchivé
Nom de la variable de type zipFichierArchivé contenant toutes les informations sur le fichier à ajouter (y compris son contenu).
Il n'est pas nécessaire que le fichier existe sur le disque : seules les informations contenues dans ce paramètre sont prises en compte.
<Progression> : Nom de champ ou nom de procédure
Mode de gestion de la jauge. Ce paramètre peut correspondre :
Si vous manipulez une archive au format TAR ou TGZ (TAR.GZ), la jauge est mise à jour uniquement à la fin de l'ajout du fichier.
Remarques

Condition d'utilisation

L'ajout de fichiers dans une archive ne peut être réalisé que si :
  • L'archive existe (la création d'une archive s'effectue avec la fonction <Variable zipArchive>.Crée).
  • L'archive est accessible en lecture et en écriture.
  • L'archive est mono-partie.
  • La taille du fichier est inférieure à 4 Go.
Attention :
  • Archives au format CAB : L'ajout de fichiers doit se faire immédiatement après la création de l'archive. Ce format ne permet pas d'ajouter des fichiers dans une archive existante.
  • Archives au format 7z : L'archive est entièrement compressée à chaque appel de la fonction <Variable zipArchive>.AjouteFichier. Cette fonction est conseillée lors de l'ajout d'un seul fichier. Si plusieurs fichiers doivent être ajoutés dans l'archive, utilisez la fonction <Variable zipArchive>.AjouteListeFichier ou <Variable zipArchive>.AjouteRépertoire.
Le nombre maximum de fichiers pouvant être intégrés :
  • dans un fichier WDZ : 232-1.
  • dans un fichier ZIP : 65535.
  • dans un fichier CAB : 65535.
Rappel :
  • LinuxUniversal Windows 10 AppiPhone/iPadWidget IOSMac Catalyst Seules les archives au format ZIP, TAR ou TGZ (TAR.GZ) sont disponibles.
  • AndroidWidget Android Le format CAB n'est pas disponible.

Niveau de compression des archives ZIP ou 7z

Par défaut, les fichiers ajoutés dans une archive au format ZIP ou 7z sont compressés. Il est possible de modifier le niveau de compression des fichiers ajoutés dans une archive grâce à la fonction zipNiveauCompression.

Codes d'erreur

Les codes d'erreur retournés sont les suivants :
  • 1 : Le chemin passé en paramètre n'existe pas.
  • 2 : Accès interdit : l'utilisateur n'a pas les droits nécessaires ou le fichier est en cours d'utilisation. Si le fichier à insérer est un fichier de données HFSQL, il doit être fermé avec le code suivant :
    HFerme(NomFichier)
    Multitâche() // Attend la fermeture effective du fichier
  • 3 : L'archive est corrompue.
  • 4 : Le chemin n'existe pas dans l'archive.
  • 5 : Impossible d'écrire dans l'archive.
  • 7 : Le fichier est déjà présent dans l'archive.
  • 8 : Une archive ne peut pas être ajoutée à elle-même. Par exemple, l'archive "MonArchive" ne peut pas être ajoutée à l'archive "MonArchive".
Le message correspondant au code d'erreur peut être connu grâce à la fonction zipMsgErreur.

Ajout d'un fichier déjà présent dans l'archive

L'ajout d'un fichier déjà présent dans une archive provoque une erreur. Un fichier est identifié selon son chemin enregistré dans l'archive. Il est donc impossible d'ajouter à l'archive deux fichiers de même nom ayant le même chemin relatif.
Par exemple, l'ajout de deux fichiers de même noms issus de répertoires différents avec la constante zipAucun est impossible.

Indice des fichiers dans l'archive

Lors de l'ajout d'un fichier dans une archive, un indice est automatiquement attribué au fichier. Cet indice correspond à l'ordre d'intégration des fichiers dans l'archive. Pour sélectionner un fichier de l'archive, il est possible d'utiliser :
  • soit l'indice de l'élément (remarque : l'indice d'un élément peut être connu grâce à la fonction zipChercheFichier).
  • soit le chemin de l'élément enregistré dans l'archive.

Chemin conservé (archives au format WDZ et ZIP)

Le tableau ci-dessous présente les chemins conservés dans l'archive en fonction :
  • du chemin d'accès du fichier,
  • de la portion du chemin à conserver.
WINDEVWEBDEV - Code Serveur Le répertoire en cours est : "C:\Temp" :
Fonction zipAjouteFichierLocalisation du fichierzipAucunzipRépertoirezipDisque
zipAjouteFichier
("Archi", "Fichier.txt")
C:\Temp\Fichier.txtFichier.txtFichier.txtFichier.txt
zipAjouteFichier
("Archi", "Donnée\Fichier.txt")
C:\Temp\Donnée\Fichier.txtFichier.txtDonnée\Fichier.txtDonnée\Fichier.txt
zipAjouteFichier
("Archi", "D:\Donnée\Fichier.txt")
D:\Donnée\Fichier.txtFichier.txtDonnée\Fichier.txtD:\Donnée\Fichier.txt

Remarque : Si la constante zipDisque est utilisée, le format WDZ conserve le chemin complet du fichier (lettre du lecteur comprise) alors que le format ZIP ne conserve pas la lettre du lecteur.

AndroidWidget Android Le disque n'est pas conservé dans le chemin de l'archive.
Universal Windows 10 App Le répertoire et le disque ne sont pas conservés dans le chemin de l'archive. Seuls le nom du fichier et son extension sont conservés.
Composante : wd280zip.dll
Version minimum requise
  • Version 24
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire