Overview
We can divide archiving and compressing tools into three main classes:- Archives with several files usually with a compression – ZIP, 7Z, XAR;
- Storing several files without compression – TAR, CPIO;
- Compression-only formats without entries – GZ, LZ, BZIP2, XZ, ZStandard, Z.
Archives from the second class are often combined with compression only formats. They are popular within Unix-like systems with their distinct operations – one for archiving, another for compression. Below are explanation and samples for every archive kind.
Compressed archives that contain multiple files
We use CreateEntry method for every file to be compressed. In these samples we do not supply compression settings so they would be default for chosen format.How to ZIP several files
Default is Deflate algorithm
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");
}
How to create 7-ZIP archives of several files
Default for 7-zip is LZMA algorithm
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");
}
XAR archive with several files
Default is ZLib algorithm
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");
}
Storing several files without compression
Approach for TAR and CPIO formats is similar and lies in already known CreateEntry method.TAR archive without compression
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");
}
CPIO archive without compression
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");
}
Compression-only formats without entries
Such archives like GZIP, LZ, BZIP2, XZ, Z do not support entries and can compress only single source. See samples with such a compression.GZ archive Compression-only formats without entries
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");
}
}
LZ archive Compression-only formats without entries
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 allows combining archive-only and compression-only formats with a single method. Here is an example of this functionality with the TAR.GZ combination. To achieve this, we use the SaveGzipped method.
TAR.GZ combination
There are similar methods for LZIP, XZ, ZStandard, Z compressing formats.
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
However we need to use another approach for BZIP2 format.
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");
}
}
Other Supported Aspose.ZIP for .NET API Features
Use the Aspose.ZIP C# library to convert, merge, edit zip-file documents, extract data from the arhives, and more!
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