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