ZIP archív formátum

A digitális korszakban, ahol az adatok a legfontosabbak, és a tárolás hatékonysága a legfontosabb, a ZIP archívumok szilárdan és mindenütt jelen lévő megoldások maradtak a fájlok tömörítésére és rendszerezésére.

A ZIP-archívum információiról

A ZIP egy archív formátum, amely egy vagy több veszteségmentesen tömörített fájlt és mappát tartalmazhat, titkosítással vagy anélkül. A ZIP a legnépszerűbb formátum, amely több mint harminc éve ismert, és gyakorlatilag minden modern operációs rendszeren támogatott. Ezt a formátumot kiterjesztették néhány más formátumra is, mint például a JAR és az OpenDocument.

Zip-archívum Fájlformátum-előzmények információi

A ZIP első formátumspecifikációja 1989-ben jelent meg. A ZIP ötlet szerzői Phil Katz és Gary Conway voltak. Azonnali sikert aratott, mivel hatékonyan csökkentette a fájlméretet, megkönnyítve a fájlok tárolását és továbbítását lassú internetkapcsolaton és a korszak korlátozott tárolókapacitásán keresztül. 1993 óta támogatja a leggyakoribb Deflate tömörítési módszert. Az erős AES titkosítást 2003-ban vezették be. Annak ellenére, hogy a szabvány meglehetősen régi, mégsem vált megkövültté - manapság aktívan fejlesztik. Így 2020-ban Zstandard, MP3 és XZ tömörítési módszerekkel bővült.

A ZIP archívum felépítése

A ZIP archívumokat ebben a hierarchikus struktúrában tervezték, hogy hatékonyan tárolják és rendszerezzék a tömörített fájlokat, miközben lehetővé teszik az archívumban lévő egyes fájlok egyszerű elérését. Az archívum minden egyes bejegyzése külön-külön tömörített, lehet akár saját tömörítési és titkosítási módszerrel is. Az archívumban lévő bejegyzés előtt az eredeti fájl metaadatait tartalmazó fejléc található. A tartalomjegyzék a fájl végén található. Ez a megközelítés lehetővé teszi önkicsomagoló (SFX) archívum létrehozását, amely egyúttal érvényes ZIP archívum is marad, mivel a végrehajtható rész az SFX fájl legelején található.

Zip tömörítési módszerek

A modern ZIP lehetővé teszi az adatok tömörítését Deflate, Deflate64™, BZIP2, LZMA, XZ, PPMd, Zstandard algoritmusokkal. A fájl tömörítés nélkül is tárolható. A leggyakoribb a Deflate, amely minden archiváló eszközben alapértelmezett. Vannak algoritmusok is bizonyos fájlok veszteségmentes tömörítésére: MP3, JPEG, WAV. Az Aspose.ZIP teljes mértékben támogatja a Deflate, Deflate64™, Bzip2, LZMA, XZ, PPMd és Zstandard módszereket. Lehetővé teszi a WavPack tömörített hang kinyerését.

Zip Archívum Támogatott műveletek

Az Aspose.ZIP használatával többféleképpen kezelheti a ZIP archívumot. Létrehozhat archívumot, bejegyzéseket adhat hozzá a meglévő archívumhoz újracsomagolás nélkül, bejegyzéseket törölhet a meglévő archívumból anélkül, hogy az archívum többi részét érintené, és tetszőleges bejegyzéseket vagy teljes archívumot bonthat ki. Minden bejegyzést külön-külön titkosíthat és visszafejthet a régi vagy a modern AES titkosítási algoritmussal. Az Aspose.ZIP képes önkicsomagoló és többkötetes ZIP archívum létrehozására.

Zip-fájl – belső szerkezet

Mint már említettük, a központi könyvtár, amely a tartalomjegyzék, a ZIP archívum vége felé található. Ez a könyvtár indexként működik, és felsorolja az archívumban lévő összes fájlbejegyzést, valamint az archívumban elfoglalt helyüket. A bejegyzés fejlécei tartalmazhatnak létrehozási és módosítási időt, fájlrendszer attribútumait, fájlnevet és megjegyzést. A bejegyzés fejléce egyéni extra mezővel bővíthető egyéni metaadatok tárolására. Lehetőség van Zip64 fejlécek beillesztésére, hogy archívumonként több mint 65 535 bejegyzést támogassanak. A Zip64 kiterjesztésű ZIP archívum maximális mérete 264–1 bájt. A ZIP archívum több fájlra osztható. Ebben az esetben a központi címtár az egyes kötetek eltolásait tárolja az adott bejegyzés gyors elérése érdekében.

Zip-fájl – belső szerkezet

A Zip archívum és támogatás népszerűsége

A ZIP az első számú archívumformátum. A ZIP archívumokat olyan széles körben ismerik és támogatják, hogy különféle szoftveralkalmazások, köztük a népszerű fájlkezelők, például a Windows Intéző, a macOS Finder és a nyílt forráskódú eszközök, mint a 7-Zip és a WinRAR natív támogatást nyújtanak ZIP fájlok létrehozása és kibontása. Ez a támogatás kiterjed a felhőalapú tárolási szolgáltatásokra, az e-mail kliensekre és még a mobileszközökre is.

Példák Zip-fájlok használatára

A zip-archívumok mindenütt megtalálható fájlformátumok az adatok tömörítésére és rendszerezésére, így a különféle szoftveralkalmazásokban elengedhetetlenek. A .NET-en keresztüli archívumokkal végzett műveletek lehetővé teszik a fejlesztők számára, hogy könnyedén dolgozzanak Zip-fájlokkal. A következő kódpéldákban elmélyülünk a Zip-archívum műveleteinek lehetőségeiben, bemutatva, hogyan lehet új Zip-fájlt létrehozni és hatékonyan kicsomagolni a fájlokat meglévőket. Ezek a példák segítenek kihasználni a könyvtár képességeit a Zip-archívumok zökkenőmentes kezeléséhez a .NET-projektekben

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

Aspose.Zip offers individual archive processing APIs for popular development environments, listed below:

Aspose.Zip for .NETAspose.Zip via JavaAspose.Zip via Python.NET

További információ a Zip-archívumról

Az emberek kérdezték

1. Melyik titkosítási módszert válasszam?

A ZIP formátum támogatja a hagyományos (ZipCrypto) és a modern AES titkosítási technikákat. Az előbbi gyengébb, mint az utóbbi, és könnyen törhető; A ZipCrypto-t az Aspose.ZIP támogatja. Kérjük, csak AES256 titkosítást használjon archívum összeállításakor.

2. Van mód a többmagos processzorok kihasználására a tömörítéshez?

Az Aspose.ZIP lehetővé teszi a ZIP archívum bejegyzéseinek összeállítását különböző CPU-magok szerint. Ez jelentősen csökkentheti a teljes tömörítési időt. Lásd egy cikket magyarázattal és használati mintával.

3. Megfertőzheti a vírus a zip-et?

Igen, a vírusok potenciálisan megfertőzhetik a ZIP-archívumban lévő fájlokat, ha maguk a fájlok fertőzöttek. Noha a Zip formátum önmagában nem káros, ugyanúgy képes tárolni és szállítani a fertőzött fájlokat, mint bármely más fájlformátum.