ZIP-archiefformaat

In het digitale tijdperk, waarin data centraal staat en opslagefficiëntie voorop staat, zijn ZIP-archieven een standvastige en alomtegenwoordige oplossing gebleven voor het comprimeren en organiseren van bestanden.

Over Zip-archiefinformatie

ZIP is een archiefformaat dat een of meerdere verliesvrij gecomprimeerde bestanden en mappen kan bevatten, met of zonder codering. ZIP is het populairste formaat dat al meer dan dertig jaar bekend is en wordt ondersteund op vrijwel elk modern besturingssysteem. Dit formaat werd ook uitgebreid naar enkele andere formaten zoals JAR en OpenDocument.

Zip-archief Bestandsformaat Geschiedenis Info

De eerste formaatspecificatie van ZIP werd gepubliceerd in 1989. De auteurs van het ZIP-idee waren Phil Katz en Gary Conway. Het was meteen een succes vanwege de efficiëntie bij het verkleinen van de bestandsgrootte, waardoor het gemakkelijker werd om bestanden op te slaan en te verzenden via trage internetverbindingen en de beperkte opslagcapaciteit van die tijd. Sinds 1993 ondersteunt het de meest gebruikelijke Deflate-compressiemethode. Sterke AES-encryptie werd in 2003 geïntroduceerd. Ondanks dat hij vrij oud is, is de standaard niet fossiel geworden - er wordt tegenwoordig actief aan ontwikkeld. Daarom werd het in 2020 uitgebreid met de compressiemethoden Zstandaard, MP3 en XZ.

Structuur van ZIP-archief

ZIP-archieven zijn ontworpen in deze hiërarchische structuur om gecomprimeerde bestanden efficiënt op te slaan en te ordenen en tegelijkertijd gemakkelijke toegang tot individuele bestanden binnen het archief mogelijk te maken. Elk archiefitem wordt afzonderlijk gecomprimeerd, mogelijk zelfs met een eigen compressie- en encryptiemethode. De vermelding in het archief heeft een voorafgaande header met originele bestandsmetagegevens. De inhoudsopgave bevindt zich aan het einde van het bestand. Een dergelijke aanpak maakt het samenstellen van een zelfuitpakkend (SFX) archief mogelijk, dat ook een geldig ZIP-archief blijft omdat het uitvoerbare deel zich helemaal aan het begin van het SFX-bestand bevindt.

Zip-compressiemethoden

Moderne ZIP maakt het comprimeren van gegevens mogelijk met Deflate, Deflate64™, BZIP2, LZMA, XZ, PPMd, Zstandard-algoritmen. Bestand kan ook zonder compressie worden opgeslagen. De meest voorkomende is Deflate, wat standaard is in elk archiveringshulpmiddel. Er zijn ook algoritmen voor verliesloze compressie van specifieke bestanden: MP3, JPEG, WAV. Aspose.ZIP ondersteunt Deflate, Deflate64™, Bzip2, LZMA, XZ, PPMd en Zstandard-methoden volledig. Het maakt extractie van gecomprimeerde WavPack-audio mogelijk.

Zip-archief ondersteunde bewerkingen

Met Aspose.ZIP kunt u op verschillende manieren met ZIP-archieven omgaan. U kunt een archief samenstellen, items toevoegen aan een bestaand archief zonder opnieuw in te pakken, items uit een bestaand archief verwijderen zonder de rest van het archief te beïnvloeden, en willekeurige items of het hele archief extraheren. U kunt elk item afzonderlijk coderen en decoderen met een verouderd of modern AES-coderingsalgoritme. Aspose.ZIP kan zelfuitpakkende ZIP-archieven met meerdere volumes maken.

Zip-bestand - Interne structuur

Zoals gezegd bevindt de centrale map, de inhoudsopgave, zich aan het einde van het ZIP-archief. Deze map fungeert als index en vermeldt alle bestandsitems in het archief, samen met hun posities in het archief. Invoerkoppen kunnen aanmaak- en wijzigingstijden, bestandssysteemkenmerken, bestandsnaam en commentaar bevatten. De invoerkop kan worden uitgebreid met een aangepast extra veld om aangepaste metagegevens op te slaan. Het is mogelijk om Zip64-headers op te nemen om meer dan 65.535 vermeldingen per archief te ondersteunen. De maximale grootte van een ZIP-archief met Zip64-extensie is 264−1 bytes. ZIP-archief kan in verschillende bestanden worden opgesplitst. In dat geval slaat de centrale map de verschuivingen van elk volume op voor snelle toegang tot een bepaald item.

Zip-bestand - Interne structuur

Populariteit van het zip-archief en ondersteuning

ZIP is het nummer één archiefformaat. ZIP-archieven worden zo algemeen erkend en ondersteund dat verschillende softwaretoepassingen, waaronder populaire bestandsbeheerders zoals Windows Explorer, macOS Finder en open-source tools zoals 7-Zip en WinRAR , bieden native ondersteuning voor het maken en uitpakken van ZIP-bestanden. Deze ondersteuning strekt zich uit tot cloudopslagdiensten, e-mailclients en zelfs mobiele apparaten.

Voorbeelden van het gebruik van zip-bestanden

Zip-archieven zijn een alomtegenwoordig bestandsformaat voor het comprimeren en organiseren van gegevens, waardoor ze essentieel zijn in verschillende softwaretoepassingen. Bewerkingen met archieven via .NET stellen ontwikkelaars in staat moeiteloos met Zip-bestanden te werken. In de volgende codevoorbeelden gaan we dieper in op de mogelijkheden van bewerkingen met Zip-archief, waarbij we laten zien hoe je nieuwe Zip -archieven kunt maken en hoe je efficiënt bestanden kunt extraheren uit bestaande. Deze voorbeelden helpen u de mogelijkheden van deze bibliotheek te benutten om Zip-archieven naadloos te beheren in uw .NET-projecten

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

Aanvullende informatie over Zip-archieven

Mensen hebben ernaar gevraagd

1. Wat is de meest voorkomende reden voor het comprimeren van een zip-archief?

De meest voorkomende reden voor het comprimeren van een Zip archief is het verkleinen van de bestandsgrootte voor efficiënte opslag, verzending en organisatie van gegevens.

2. Waarom heet zip archief?

Zip wordt een archief genoemd omdat het fungeert als een digitaal bindmiddel, waarbij verschillende bestanden en mappen worden samengevoegd tot één gecomprimeerde entiteit, vergelijkbaar met de manier waarop fysieke archieven documenten opslaan en organiseren. Deze archiveringsfunctie vereenvoudigt de opslag en overdracht van gegevens door het aantal afzonderlijke bestanden en de totale benodigde opslagruimte te verminderen.

3. Kan een virus zip infecteren?

Ja, virussen kunnen mogelijk bestanden in een Zip-archief infecteren als de bestanden zelf zijn geïnfecteerd. Hoewel het Zip-formaat zelf niet inherent schadelijk is, kan het geïnfecteerde bestanden opslaan en transporteren, net als elk ander bestandsformaat.