Crie um arquivo para armazenar arquivos, um ou vários

Simplifique o gerenciamento de arquivos com ferramentas de arquivamento .NET

Visão geral

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

Support and Learning Resources

  
  

Aspose.Zip offers individual archive processing APIs for other popular development environments, listed below: