Como compactar uma pasta em C#
Este artigo rápido explica como zip uma pasta em C#. Ele fornece passos detalhados e uma amostra de código para ajudar na criação de um arquivo ZIP para uma pasta e seus conteúdos.
Benefícios de Zipping Folders
Eficiência Espacial:
Reduz o espaço de armazenamento com a compressão dos arquivos.
Gestão de arquivos organizados:
Combine vários arquivos em um único arquivo para facilitar a distribuição e gestão.
Transmissões mais rápidas:
Maiores tamanhos de arquivo levam a tempos mais rápidos de upload e download.
Título: Preparando o Meio Ambiente
- Instale o Visual Studio ou qualquer .NET IDE compatível.
- Instale a biblioteca Aspose.ZIP através do NuGet Package Manager.
Guia passo a passo para ZIP uma pasta em C#
Passo 1: Instalar Aspose.ZIP
Adicione a biblioteca Aspose.ZIP ao seu projeto usando o gerenciador de pacotes NuGet. Isso permite recursos de compressão de arquivos e folhas em projetos .NET e C#.
Install-Package Aspose.ZIP
Passo 2: Criar um Objeto FileStream
Imediatamente a FileStream
Objeto para o arquivo de saída ZIP. Este ficheiro será a arquiva de destino, por exemplo “AnimationImages.zip”.
using System.IO;
var zippedFolder = File.Open("AnimationImages.zip", FileMode.Create);
Passo 3: Criar um Objeto de Arquivo ZIP
Crie um exemplo de Archive
Classe para lidar com operações de arquivo ZIP em C#.
using (Archive archiveFile = new Archive())
{
// Further processing follows here
}
Passo 4: Crie entradas no arquivo
Adicione todos os arquivos e pastas do directorio-alvo de forma recorrente usando o CreateEntries
Isso permite que você zip todos os conteúdos de uma pasta em C#.
archiveFile.CreateEntries("AnimationImages");
Passo 5: Salve o arquivo ZIP
Uma vez que as entradas forem criadas, salve o arquivo para o disco. Isto produzirá um ficheiro ZIP que contém todos os arquivos selecionados e subfolders.
archiveFile.Save(zippedFolder);
Exemplo de código completo para ZIP uma pasta
Aqui está o exemplo completo de C# mostrando como zip uma pasta, adicionar arquivos a um arquivo ZIP, ou zip vários ficheiros em um diretório:
// Create a file stream object for the output zip file
using (FileStream zippedFolder = File.Open("AnimationImages.zip", FileMode.Create))
{
// Create a Zip archive file class object
using (Archive archiveFile = new Archive())
{
// Add all the files and folders recursively
archiveFile.CreateEntries("AnimationImages");
// Save the output ZIP file
archiveFile.Save(zippedFolder);
}
}
Informações adicionais
- Você pode fornecer um Objeto de Clase da DirectoryInfo como a fonte dos arquivos para o arquivo ZIP de saída.
- Você também pode incluir bandeiras para controlar se incluir a pasta de raiz na saída ZIP.
- Este método é adequado para projetos de .NET Core, .Net Framework e ASP.NET.
- Aspose.ZIP pode lidar com arquivos, pastas e diretórios de zipping em C#.
Perguntas frequentes (FAQ)
Como faço para digitalizar uma pasta em C#?
Siga os passos acima para adicionar Aspose.ZIP ao seu projeto e usar CreateEntries
e Save
dos métodos.
Posso criar um arquivo ZIP em C# para vários arquivos?
Sim, use o CreateEntries
Método para adicionar todos os arquivos em uma pasta, ou adição de ficheiros individualmente.
Como eu zip arquivos em um diretório usando C#?
Passar o caminho do diretório para CreateEntries
Adicionar recursivamente todos os arquivos e subfolders ao ZIP.
Esta solução é compatível com o .NET Core?
Sim, o Aspose.ZIP funciona com os projetos .NET Core, .Net Framework e ASP.NET.
Posso adicionar arquivos a um arquivo ZIP existente em C#?
Sim, você pode abrir um arquivo existente e adicionar arquivos ou pastas conforme necessário.
Como posso verificar se a pasta de raiz está incluída no arquivo ZIP?
Use as bandeiras ou opções disponíveis em CreateEntries
para o controle finos.
Conclusão
Este tutorial guiou-o através do processo de zipping uma pasta completa em C# com Aspose.ZIP. Você pode zip folhas, adicionar arquivos a um ZIP, e gerenciar a compressão de arquivo de forma eficiente em .NET, .Net Core e aplicações ASP.NET. Para extrair ou deszipping arquivos, consulte os nossos outros tutoriais Asposa.