Modificar arquivos Zip com Aspose.Zip para .NET

Introdução

Arquivos zip são vitais para organização e compactação de dados, mas como você modifica seus conteúdos programaticamente? A solução está no Aspose.Zip para .NET, uma biblioteca robusta que simplifica a manipulação de arquivos zip com C#. Neste tutorial, nós o guiaremos pela extração, exclusão e adição de entradas em arquivos zip passo a passo.

Pré-requisitos

Antes de começarmos, certifique-se de ter o seguinte:

  1. Aspose.Zip para biblioteca .NET: Instale a biblioteca em seu projeto. Você pode baixá-laaqui.

  2. Diretório de documentos: configure um diretório para armazenar seus arquivos zip. Substituir"Your Document Directory" no código com seu caminho real.

Importar namespaces necessários

Comece importando os namespaces necessários:

using Aspose.Zip;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

Etapa 1: Abra o arquivo Zip externo

Comece abrindo seu arquivo zip principal (zip externo):

string dataDir = "Your Data Directory";
using (Archive outer = new Archive(dataDir + "outer.zip"))
{
    // Prossiga para identificar as entradas do CEP interno
}

Etapa 2: Identifique as entradas do Zip interno

Em seguida, identifique e prepare-se para excluir quaisquer arquivos zip internos:

List<ArchiveEntry> entriesToDelete = new List<ArchiveEntry>();
List<string> namesToInsert = new List<string>();
List<MemoryStream> contentToInsert = new List<MemoryStream>();

foreach (ArchiveEntry entry in outer.Entries)
{
    if (entry.Name.EndsWith(".zip", StringComparison.InvariantCultureIgnoreCase))
    {
        entriesToDelete.Add(entry);
        
        using (MemoryStream innerCompressed = new MemoryStream())
        {
            entry.Open().CopyTo(innerCompressed);
            
            // Extrair entradas internas
            using (Archive inner = new Archive(innerCompressed))
            {
                foreach (ArchiveEntry ie in inner.Entries)
                {
                    namesToInsert.Add(ie.Name);
                    MemoryStream content = new MemoryStream();
                    ie.Open().CopyTo(content);
                    contentToInsert.Add(content);
                }
            }
        }
    }
}

Etapa 3: Excluir entradas do arquivo interno

Depois de reunir as entradas necessárias, exclua as entradas zip internas:

foreach (ArchiveEntry e in entriesToDelete)
{
    outer.DeleteEntry(e);
}

Etapa 4: Adicionar entradas modificadas ao Zip externo

Agora, você pode adicionar as entradas recém-extraídas de volta ao seu arquivo zip externo:

for (int i = 0; i < namesToInsert.Count; i++)
{
    outer.CreateEntry(namesToInsert[i], contentToInsert[i]);
}

Etapa 5: Salve o arquivo Zip modificado

Por fim, salve suas alterações em um novo arquivo zip:

outer.Save(dataDir + "flatten.zip");

Conclusão

O Aspose.Zip para .NET fornece uma maneira poderosa e direta de manipular arquivos zip programaticamente. Este tutorial abordou extração, exclusão e adição de entradas a um arquivo zip, ilustrando a versatilidade da biblioteca. Explore diferentes cenários e aprimore suas habilidades de manipulação de arquivos!

Perguntas frequentes

Posso usar o Aspose.Zip para .NET com outras linguagens de programação?

O Aspose.Zip foi projetado principalmente para aplicativos .NET, mas o Aspose oferece bibliotecas semelhantes para várias linguagens de programação.

Existe uma versão de avaliação gratuita disponível para o Aspose.Zip para .NET?

Sim, uma versão de teste gratuita está disponível para downloadaqui.

Como obtenho suporte para o Aspose.Zip para .NET?

Visite oFórum Aspose.Zip para suporte e discussões.

Posso comprar uma licença temporária do Aspose.Zip para .NET?

Sim, você pode obter uma licença temporáriaaqui.

Onde posso encontrar a documentação do Aspose.Zip para .NET?

A documentação completa está disponívelaqui.