Przegląd
Narzędzia do archiwizacji i kompresji możemy podzielić na trzy główne klasy:- Archiwa zawierające kilka plików, zwykle z kompresją – ZIP, 7Z, XAR;
- Przechowywanie kilku plików bez kompresji – TAR, CPIO;
- Kompresja -tylko formaty bez wpisów – GZ, LZ, BZIP2, XZ, ZStandard, Z.
Archiwa drugiej klasy często łączone są z formatami wyłącznie kompresyjnymi. Są popularne w systemach uniksowych ze względu na różne operacje – jedną do archiwizacji, drugą do kompresji. Poniżej znajdują się wyjaśnienia i próbki dla każdego rodzaju archiwum.
Skompresowane archiwa zawierające wiele plików
Do każdego skompresowanego pliku używamy metody CreateEntry. W tych przykładach nie podajemy ustawień kompresji, więc będą one domyślne dla wybranego formatu.Jak spakować kilka plików w formacie ZIP
Wartość domyślna to algorytm Deflate
Zip compression with Deflate algoritm
using (Archive archive = new Archive())
{
archive.CreateEntry("first.bin", "data1.bin");
archive.CreateEntry("second.bin", "data2.bin");
// Add as many entries as you need
archive.Save("archive.zip");
}
Jak utworzyć archiwa 7-ZIP kilku plików
Domyślnym ustawieniem dla 7-zip jest algorytm LZMA
7-Zip with LZMA algorithm
using (SevenZipArchive archive = new SevenZipArchive())
{
archive.CreateEntry("first.bin", "data1.bin");
archive.CreateEntry("second.bin", "data2.bin");
// Add as many entries as you need
archive.Save("archive.7z");
}
Archiwum XAR z kilkoma plikami
Domyślnie jest to algorytm ZLib
XAR with ZLib algorithm
using (XarArchive archive = new XarArchive())
{
archive.CreateEntry("first.bin", "data1.bin");
archive.CreateEntry("second.bin", "data2.bin");
// Add as many entries as you need
archive.Save("archive.xar");
}
Przechowywanie kilku plików bez kompresji
Podejście do formatów TAR i CPIO jest podobne i opiera się na znanej już metodzie CreateEntry .Archiwum TAR bez kompresji
TAR storing files without compression
using (TarArchive archive = new TarArchive())
{
archive.CreateEntry("first.bin", "data1.bin");
archive.CreateEntry("second.bin", "data2.bin");
// Add as many entries as you need
archive.Save("archive.tar");
}
Archiwum CPIO bez kompresji
CPIO storing files without compression
using (TarArchive archive = new TarArchive())
{
archive.CreateEntry("first.bin", "data1.bin");
archive.CreateEntry("second.bin", "data2.bin");
// Add as many entries as you need
archive.Save("archive.cpio");
}
Formaty przeznaczone wyłącznie do kompresji, bez wpisów
Archiwa takie jak GZIP, LZ, BZIP2, XZ, Z nie obsługują wpisów i mogą kompresować tylko jedno źródło. Zobacz próbki z taką kompresją.Archiwum GZ Formaty wyłącznie kompresyjne, bez wpisów
GZIP with compress only single source
using (FileStream source = File.Open("alice29.txt", FileMode.Open, FileAccess.Read))
{
using (GzipArchive archive = new GzipArchive())
{
archive.SetSource(source);
archive.Save("archive.gz");
}
}
Archiwum LZ Formaty wyłącznie kompresyjne, bez wpisów
LZIP with compress only single source
using (FileStream source = File.Open("alice29.txt", FileMode.Open, FileAccess.Read))
{
using (GzipArchive archive = new GzipArchive())
{
archive.SetSource(source);
archive.Save("archive.gz");
}
}
Aspose.ZIP umożliwia łączenie formatów przeznaczonych wyłącznie do archiwizacji i formatów przeznaczonych wyłącznie do kompresji za pomocą jednej metody. Oto przykład tej funkcjonalności z kombinacją TAR.GZ. Aby to osiągnąć, używamy metody SaveGzipped.
Kombinacja TAR.GZ
Istnieją podobne metody kompresji formatów LZIP, XZ, ZStandard, Z.
TAR.GZ with SaveGzipped method
using (TarArchive archive = new TarArchive())
{
archive.CreateEntry("first.bin", "data1.bin");
archive.CreateEntry("second.bin", "data2.bin");
archive.SaveGzipped("archive.tar.gz");
}
TAR.BZ2
Musimy jednak zastosować inne podejście w przypadku formatu BZIP2.
BZIP2 with SaveGzipped method
using (TarArchive tar = new TarArchive())
{
tar.CreateEntry("first.bin", "data1.bin");
tar.CreateEntry("second.bin", "data2.bin");
using (Bzip2Archive archive = new Bzip2Archive())
{
archive.SetSource(tar);
archive.Save("archive.tar.bz2");
}
}
Inne obsługiwane funkcje Aspose.ZIP dla .NET API
Skorzystaj z biblioteki Aspose.ZIP C#, aby konwertować, scalać, edytować dokumenty w formacie zip, wyodrębniać dane z archiwów i nie tylko!
Support and Learning Resources
- Learning Resources
- Documentation
- Source Code
- API References
- Tutorial Videos
- Product Support
- Free Support
- Paid Support
- Blog
- Release Notes
- Why Aspose.ZIP for .NET?
- Customers List
- Success Stories