Os arquivos GZip (.gz) são usados para compactar um ou mais arquivos usando o algoritmo de compactação GNU zip. É comumente usado para compactação de arquivos em sistemas operacionais UNIX. Neste artigo, você aprenderá como compactar arquivos usando GZip (.gz) programaticamente em C#. Além disso, o artigo também abordará como descompactar arquivos GZip em C#.
- API .NET para compactar e descompactar arquivos usando GZip
- Compactar arquivos usando GZip em C#
- Descompacte um arquivo GZip em C#
- Extraia um arquivo GZip no Stream em C#
API C# para compactar e descompactar arquivos usando GZip
Para compactar e descompactar arquivos usando GZip, usaremos Aspose.ZIP for .NET. É uma API poderosa que permite trabalhar com formatos de arquivo populares, incluindo ZIP, 7z, GZip, etc. Você pode baixar a API ou instalá-la usando NuGet.
PM> Install-Package Aspose.Zip
Compactar arquivos usando GZip em C#
A seguir estão as etapas para compactar arquivos usando GZip em C#.
- Crie um objeto da classe GzipArchive.
- Use o método GzipArchive.SetSource(String) para adicionar um arquivo ao arquivamento.
- Crie um arquivo GZip usando o método GzipArchive.Save(String).
O exemplo de código a seguir mostra como compactar arquivos para GZip em C#.
using (GzipArchive archive = new GzipArchive())
{
// definir fonte
archive.SetSource("data.bin");
// criar arquivo
archive.Save("archive.gz");
}
Descompacte um arquivo GZip em C#
A seguir estão as etapas para descompactar um arquivo GZip em C# usando Aspose.ZIP para .NET.
- Crie um objeto da classe GzipArchive e inicialize-o com o caminho do arquivo GZip.
- Crie um arquivo para o conteúdo extraído usando o método File.Create(String).
- Abra o GZip para extração usando o método GZipArchive.Open().
- Leia o conteúdo extraído e grave-o no arquivo.
O exemplo de código a seguir mostra como descompactar um arquivo GZip usando C#.
// carregar o arquivo GZip
using (var archive = new GzipArchive("archive.gz"))
{
// crie um arquivo
using (var extracted = File.Create("data.bin"))
{
// Arquivo aberto
var unpacked = archive.Open();
byte[] b = new byte[8192];
int bytesRead;
// gravar em arquivo
while (0 < (bytesRead = unpacked.Read(b, 0, b.Length)))
extracted.Write(b, 0, bytesRead);
}
}
Extraia um arquivo GZip no fluxo em C#
Você também pode extrair um arquivo GZip em um objeto de fluxo de memória. A seguir estão as etapas para realizar esta operação.
- Crie um novo objeto MemoryStream.
- Crie um objeto da classe GzipArchive e inicialize-o com o caminho do arquivo GZip.
- Extraia o GZip e copie para o fluxo de memória usando o método GZipArchive.Open().CopyTo(MemoryStream).
O exemplo de código a seguir mostra como extrair um arquivo GZip em um fluxo de memória usando C#.
// criar um fluxo de memória
var ms = new MemoryStream();
// carregar arquivo GZip
using (GzipArchive archive = new GzipArchive(File.OpenRead("sample.gz")))
{
// extrair e copiar para o fluxo de memória
archive.Open().CopyTo(ms);
Console.WriteLine(archive.Name);
}
Obtenha uma licença de API gratuita
Você pode obter uma licença temporária gratuita para usar a API sem limitações de avaliação.
Conclusão
Neste artigo, você aprendeu como compactar ou descompactar arquivos usando GZip em C#. Além disso, você viu como extrair um GZip para transmitir programaticamente. Você pode explorar mais sobre o Aspose.ZIP para .NET usando documentação. Além disso, você pode entrar em contato conosco para compartilhar suas dúvidas através do nosso fórum.