Visão geral
Podemos dividir as ferramentas de arquivamento e compactação em três classes principais:- Arquivos com vários arquivos geralmente com compactação – ZIP, 7Z, XAR;
- Armazenamento de vários arquivos sem compactação – TAR, CPIO;
- Compressão -apenas formatos sem entradas – GZ, LZ, BZIP2, XZ, ZStandard, Z.
Arquivos da segunda classe são frequentemente combinados com formatos somente de compactação. Eles são populares em sistemas do tipo Unix com suas operações distintas – uma para arquivamento, outra para compactação. Abaixo estão explicações e exemplos para cada tipo de arquivo.
Arquivos compactados que contêm vários arquivos
Usamos o método CreateEntry para cada arquivo a ser compactado. Nestes exemplos não fornecemos configurações de compactação, portanto elas seriam padrão para o formato escolhido.Como ZIP vários arquivos
O padrão é o algoritmo 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");
}
Como criar arquivos 7-ZIP de vários arquivos
O padrão para 7-zip é o algoritmo 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");
}
Arquivo XAR com vários arquivos
O padrão é o algoritmo 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");
}
Armazenando vários arquivos sem compactação
A abordagem para os formatos TAR e CPIO é semelhante e baseia-se no método já conhecido CreateEntry .Arquivo TAR sem compactação
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");
}
Arquivo CPIO sem compactação
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");
}
Formatos somente de compactação sem entradas
Arquivos como GZIP, LZ, BZIP2, XZ, Z não suportam entradas e podem compactar apenas uma única fonte. Veja exemplos com essa compactação.Arquivo GZ Formatos somente de compactação sem entradas
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");
}
}
Arquivo LZ Formatos somente de compactação sem entradas
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 permite combinar formatos somente de arquivo e somente compactação com um único método. Aqui está um exemplo desta funcionalidade com a combinação TAR.GZ. Para conseguir isso, usamos o método SaveGzipped.
Combinação TAR.GZ
Existem métodos semelhantes para formatos de compactação 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
No entanto, precisamos usar outra abordagem para o formato 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");
}
}
Outros recursos suportados da API Aspose.ZIP para .NET
Use a biblioteca Aspose.ZIP C# para converter, mesclar, editar documentos de arquivo zip, extrair dados de arquivos e muito mais!
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