Обзор
Инструменты архивирования и сжатия можно разделить на три основных класса:- Архивы с несколькими файлами, обычно со сжатием – ZIP, 7Z, XAR;
- Хранение нескольких файлов без сжатия – TAR, CPIO;
- Сжатие. -только форматы без записей – GZ, LZ, BZIP2, XZ, ZStandard, Z.
Архивы второго класса часто комбинируются с форматами только сжатия. Они популярны в Unix-подобных системах благодаря своим различным операциям: одна для архивирования, другая для сжатия. Ниже приведены пояснения и примеры для каждого типа архива.
Сжатые архивы, содержащие несколько файлов
Мы используем метод CreateEntry для каждого сжимаемого файла. В этих примерах мы не указываем настройки сжатия, поэтому они будут использоваться по умолчанию для выбранного формата.Как заархивировать несколько файлов
По умолчанию используется алгоритм 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");
}
Как создать 7-ZIP-архивы из нескольких файлов
По умолчанию для 7-zip используется алгоритм 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");
}
XAR-архив с несколькими файлами
По умолчанию используется алгоритм 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");
}
Хранение нескольких файлов без сжатия
Подход для форматов TAR и CPIO аналогичен и заключается в уже известном методе CreateEntry .TAR-архив без сжатия
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 архив без сжатия
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");
}
Форматы только для сжатия без записей
Такие архивы, как GZIP, LZ, BZIP2, XZ, Z, не поддерживают записи и могут сжимать только один источник. Посмотрите примеры с таким сжатием.Архив GZ Форматы только сжатия без записей
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 Форматы только сжатия без записей
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 позволяет комбинировать форматы только для архивирования и только для сжатия одним методом. Вот пример этой функциональности с комбинацией TAR.GZ. Для этого мы используем метод SaveGzipped.
Комбинация ТАР.ГЗ
Существуют аналогичные методы для форматов сжатия 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");
}
ТАР.BZ2
Однако нам нужно использовать другой подход для формата 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");
}
}
Другие поддерживаемые функции Aspose.ZIP для .NET API
Используйте библиотеку Aspose.ZIP C# для преобразования, объединения, редактирования документов в виде zip-файлов, извлечения данных из архивов и многого другого!
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