Section courante

A propos

Section administrative du site

Introduction

Le format de fichier ZIP est l'un des plus anciens formats d'archive compressé sous les IBM PC avec les systèmes d'exploitation DOS et Windows. A l'origine, il fut créé par Phil Katz, pour son logiciel PKZIP (Phil Katz Zip) comme alternative au PKARC. Par la suite, sa popularité a toujours été grandissante et le nombre de concurrents a lui aussi augmenté.

L'avantage de ce format c'est qu'il est possible d'entreposer un dossier complet dans un seul fichier et d'occuper moins d'espace disque que l'originale. Cependant, il faudra attendre au format ZIP64 introduit dans le PKWARE 4.5 pour qu'il supporte des fichiers de taille supérieure à 4 Go. On désigne sous ce terme un fichier ayant été compressé en format compatible au ZIP, tel avec le 7-Zip, WinRAR, WarpZIP, PKZIP/PKUNZIP ou le WinZip par exemple. On peut décompresser le contenu d'un fichier ZIP sous les distributions Linux en utilisant la commande unzip.

Structure d'entête du fichier

Voici l'entête du fichier ZIP :

Déplacement Taille Description
0 4 octets Ce champ permet d'indiquer la signature du fichier ZIP.
4 2 octets Ce champ permet d'indiquer la version nécessaire pour l'extrait.
6 2 octets Ce champ permet d'indiquer les bits d'informations supplémentaires.
8 2 octets Ce champ permet d'indiquer la méthode de compression.
10 2 octets Ce champ permet d'indiquer l'heure de la dernière modification.
12 2 octets Ce champ permet d'indiquer la date de la dernière modification.
14 4 octets Ce champ permet d'indiquer la signature de vérification CRC-32.
18 4 octets Ce champ permet d'indiquer la taille du fichier compressé.
22 4 octets Ce champ permet d'indiquer la taille du fichier décompressé.
26 2 octets Ce champ permet d'indiquer la longueur du nom de fichier.
28 2 octets Ce champ permet d'indiquer la longueur du champ supplémentaire.

Remarques

Exemple

Voici un exemple montrant la structure de ce format suivant en Turbo Pascal 7 :

  1. Type
  2. ZipRecL=Record
  3.   Sign:LongInt;
  4.   VerNeeded2Xtrk,GeneralPurposeBitFlag,CompressMethod:Word;
  5.   LastModFileTime,LastModFileDate:Word;
  6.   CRC32,CompressSize,UncompressSize:LongInt;
  7.   FilenameLen,ExtraFieldLen:Word;
  8.  End;

Voir également

Logiciel - 7-Zip - Présentation
Langage de programmation - PHP - Code Igniter 2.0 - Référence des classes - «zip»

Dernière mise à jour : Lundi, le 8 février 2016