Format d'archive ZIP
À l’ère du numérique, où les données sont reines et l’efficacité du stockage primordiale, les archives ZIP restent une solution incontournable et omniprésente pour compresser et organiser les fichiers.
À propos des informations sur les archives Zip
ZIP est un format d’archive pouvant contenir un ou plusieurs fichiers et dossiers compressés sans perte, avec ou sans cryptage. ZIP est le format le plus populaire connu depuis plus de trente ans et pris en charge sur pratiquement tous les systèmes d’exploitation modernes. Ce format s’est également étendu à d’autres formats comme JAR et OpenDocument.
Informations sur l'historique du format de fichier d'archive Zip
La première spécification de format ZIP a été publiée en 1989. Les auteurs de l’idée ZIP étaient Phil Katz et Gary Conway. Ce fut un succès immédiat en raison de son efficacité à réduire la taille des fichiers, facilitant le stockage et la transmission de fichiers sur des connexions Internet lentes et des capacités de stockage limitées de cette époque. Depuis 1993, il prend en charge la méthode de compression Deflate la plus courante. Le cryptage AES fort a été introduit en 2003. Bien qu’il soit assez ancien, le standard n’est pas devenu fossile: il est activement développé de nos jours. Ainsi, en 2020, il a été étendu aux méthodes de compression Zstandard, MP3 et XZ.
Structure des archives ZIP
Les archives ZIP sont conçues dans cette structure hiérarchique pour stocker et organiser efficacement les fichiers compressés tout en permettant un accès facile aux fichiers individuels dans l’archive. Chaque entrée de l’archive est compressée séparément, peut-être même avec sa propre méthode de compression et de cryptage. L’entrée dans l’archive est précédée d’un en-tête avec les métadonnées du fichier d’origine. La table des matières réside à la fin du fichier. Une telle approche permet de composer une archive auto-extractible (SFX), qui reste également une archive ZIP valide car la partie exécutable réside au tout début du fichier SFX.
Méthodes de compression Zip
Le ZIP moderne permet de compresser les données avec les algorithmes Deflate, Deflate64™, BZIP2, LZMA, XZ, PPMd, Zstandard. Le fichier peut également être stocké sans compression. Le plus courant est Deflate, qui est la valeur par défaut dans tout outil d’archivage. Il existe également des algorithmes de compression sans perte de fichiers spécifiques: MP3, JPEG, WAV. Aspose.ZIP prend entièrement en charge les méthodes Deflate, Deflate64™, Bzip2, LZMA, XZ, PPMd et Zstandard. Il permet l’extraction de l’audio compressé WavPack.
Opérations prises en charge par les archives Zip
En utilisant Aspose.ZIP, vous pouvez gérer les archives ZIP de différentes manières. Vous pouvez composer une archive, ajouter des entrées à l’archive existante sans reconditionnement, supprimer des entrées de l’archive existante sans affecter le reste de l’archive et extraire une entrée arbitraire ou une archive entière. Vous pouvez crypter et déchiffrer chaque entrée séparément avec un algorithme de cryptage AES existant ou moderne. Aspose.ZIP est capable de créer des archives ZIP auto-extractibles et multivolumes.
Fichier Zip - Structure interne
Comme indiqué, le répertoire central, qui est la table des matières, se trouve vers la fin de l’archive ZIP. Ce répertoire agit comme un index, répertoriant toutes les entrées de fichiers dans l’archive ainsi que leurs positions dans l’archive. Les en-têtes d’entrée peuvent inclure les heures de création et de modification, les attributs du système de fichiers, le nom du fichier et le commentaire. L’en-tête d’entrée peut être étendu avec un champ supplémentaire personnalisé pour stocker des métadonnées personnalisées. Il est possible d’inclure des en-têtes Zip64 pour prendre en charge plus de 65 535 entrées par archive. La taille maximale de l’archive ZIP avec l’extension Zip64 est de 264−1 octets. L’archive ZIP peut être divisée en plusieurs fichiers. Dans ce cas, le répertoire central stocke les décalages de chaque volume pour un accès rapide à une entrée particulière.
Popularité de l'archive Zip et du support
ZIP est le format d’archive numéro un. Les archives ZIP sont si largement reconnues et prises en charge que diverses applications logicielles, y compris les gestionnaires de fichiers populaires comme l’Explorateur Windows, le Finder macOS et les outils open source comme 7-Zip et WinRAR , fournissent une prise en charge native pour créer et extraire des fichiers ZIP. Cette prise en charge s’étend aux services de stockage cloud, aux clients de messagerie et même aux appareils mobiles.
Exemples d'utilisation de fichiers Zip
Les archives Zip sont un format de fichier omniprésent pour compresser et organiser les données, ce qui les rend essentielles dans diverses applications logicielles. Les opérations avec les archives via .NET permettent aux développeurs de travailler sans effort avec des fichiers Zip. Dans les exemples de code suivants, nous examinerons les capacités des opérations avec l’archive Zip, démontrant comment créer de nouvelles archives Zip et extraire efficacement des fichiers de ceux existants. Ces exemples vous aideront à exploiter les capacités de cette bibliothèque pour gérer les archives Zip de manière transparente dans vos projets .NET.
Create Zip file via .NET
Compose ZIP archive with two entries added by their paths.:
using (var archive = new Archive())
{
archive.CreateEntry("entry_name1.dat", "input_file1.dat");
archive.CreateEntry("entry_name2.dat", "input_file2.dat");
archive.Save("result_archive.zip");
}
How to UnZIP files in C#
Steps: Unzip File to Folder in C#
- Create an instance of Archive class based on your zip file.
- Unzip the zip file using Archive.ExtractToDirectory method to your folder.
using (var archive = new Archive("input_archive.zip"))
{
archive.ExtractToDirectory("outputDirectory");
}
Compressing Single File ZIP File
Steps: Compressing Single File in C#
- Create a file stream with the desired name of your output zip file.
- Create file stream of the data file to be compressed and encrypted.
- Create an instance of Archive class and pass to it an instance of ArchiveEntrySettings class with AesEcryptionSettings instance, specifying the password.
- Add data file created in step 2 using Archive.CreateEntry method.
- Compress and encrypt the data file using Archive.Save method and pass it the file stream created in step 1.
using (var zipFile = File.Open("EncrypedWithAES256.zip", FileMode.Create))
{
using (var source = File.Open("alice29.txt", FileMode.Open, FileAccess.Read))
{
using (var archive = new Archive(new ArchiveEntrySettings(null, new AesEcryptionSettings("p@s$", EncryptionMethod.AES256))))
{
archive.CreateEntry("alice29.txt", source);
archive.Save(zipFile);
}
}
}
Deleting entries from existing archive
You do not have to repack whole archive when you only need to remove one entry from it. Steps:
- Create a file stream with the desired name of your output zip file.
- Create an instance of Archive class based on your zip file.
- Delete the first file - the entry with zero index – from the archive.
- Save the archive without excluded entry to output stream from step 1
using (FileStream outputZipFile = File.Open(“withoutAnEntry.zip”, FileMode.Create))
{
using (Archive archive = new Archive(“archive.zip”))
{
archive.DeleteEntry(archive.Entries[0]);
archive.Save(outputZipFile);
}
}
Informations supplémentaires sur les archives Zip
Les gens ont demandé
1. Quelle méthode de cryptage dois-je choisir ?
Le format ZIP prend en charge les techniques de cryptage AES traditionnelles (ZipCrypto) et modernes. Le premier est bien plus faible que le second et facilement cassable ; ZipCrypto est pris en charge par Aspose.ZIP pour les anciens. Veuillez utiliser uniquement le cryptage AES256 lors de la composition d’une archive.
2. Existe-t-il un moyen de tirer parti des processeurs multicœurs pour la compression ?
Aspose.ZIP vous permet de composer des entrées d’archive ZIP par différents cœurs de processeur. Cela peut réduire considérablement le temps de compression total. Voir un article avec une explication et un exemple d’utilisation.
3. Un virus peut-il infecter le zip ?
Oui, les virus peuvent potentiellement infecter les fichiers d’une archive Zip si les fichiers eux-mêmes sont infectés. Bien que le format Zip lui-même ne soit pas dangereux en soi, il peut stocker et transporter des fichiers infectés, comme n’importe quel autre format de fichier.