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:
-
Aspose.Zip para biblioteca .NET: Instale a biblioteca em seu projeto. Você pode baixá-laaqui.
-
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.