ZIP para TGZ C#

Nesta postagem do blog, exploraremos como converter arquivos ZIP para o formato TGZ(tar.gz) usando C#. Converter de ZIP para TGZ é uma tarefa comum, especialmente ao lidar com arquivos compactados para sistemas do tipo Unix. O tutorial a seguir inclui uma explicação passo a passo e o código necessário para você começar.

Por que converter ZIP para TGZ?

Pode ser necessário converter o formato ZIP para TGZ por diferentes motivos, como:

  • Compatibilidade entre plataformas: arquivos TGZ são comumente usados em sistemas baseados em Unix (Linux, macOS), enquanto arquivos ZIP são populares no Windows. Converter ZIP para TGZ facilita o manuseio de arquivos compactados em diferentes ambientes.

  • Benefícios da compactação: os arquivos TGZ geralmente oferecem melhores taxas de compactação em comparação ao ZIP, economizando espaço de armazenamento e reduzindo o tempo de transferência.

  • Automatização de tarefas: Em C#, automatizar conversões de formato de arquivo pode economizar tempo e esforço, especialmente em aplicativos que lidam com grandes volumes de dados.

Conversor ZIP para TGZ - Configuração da API C#

Você pode converter ZIP em TGZ instalando Conholdate.Total para .NET executando o seguinte comando NuGet no Visual Studio IDE:

PM> NuGet\Install-Package Conholdate.Total

Converter ZIP para TGZ em C#

As etapas a seguir mostram como converter ZIP para TGZ em C#:

  • Carregando o arquivo ZIP: A classe Archive carrega o arquivo ZIP de origem contendo as entradas que você deseja converter para o formato TGZ.

  • Criando um TarArchive: Criamos um objeto TarArchive para começar a preparar o conteúdo para o arquivo TGZ.

  • Processando Entradas: Cada entrada no arquivo ZIP é iterada. Se não for um diretório, extraímos seus dados para um MemoryStream.

  • Adicionando entradas ao TarArchive: para cada entrada válida, o método CreateEntry é usado para adicionar o arquivo ao tarball, junto com os dados armazenados na memória.

  • Salvando como TGZ: O método SaveGzipped é invocado para compactar e salvar o tarball como um arquivo .tar.gz.

O trecho de código a seguir mostra a conversão de ZIP para TGZ em C#:

using (Archive source = new Archive("source.zip"))
{
    using (Aspose.Zip.Tar.TarArchive tar = new Aspose.Zip.Tar.TarArchive())
    {
        foreach (ArchiveEntry entry in source.Entries)
        {
            if (!entry.IsDirectory)
            {
                MemoryStream mem = new MemoryStream();
                entry.Open().CopyTo(mem);
                tar.CreateEntry(entry.Name, mem);
            }
        }

        tar.SaveGzipped("result.tar.gz");
    }
}

Licença de avaliação gratuita

Você pode solicitar uma licença temporária gratuita para testar a conversão de ZIP sem nenhuma restrição de avaliação em seu ambiente.

Conclusão

Converter ZIP para TGZ em C# é um processo simples para processar arquivos compactados. Quer você esteja lidando com compartilhamento de arquivos entre plataformas ou otimizando tamanhos de arquivo, esse processo de conversão é altamente benéfico. Seguindo o exemplo de código fornecido, você pode automatizar a conversão de ZIP para TGZ em seus aplicativos .NET, garantindo compatibilidade e eficiência no gerenciamento de arquivos compactados. Caso tenha alguma dúvida, escreva para nós em forum.

Perguntas frequentes

O formato TGZ é compatível com o Windows?

Sim, embora seja mais comum em sistemas baseados em Unix, arquivos TGZ também podem ser extraídos e criados no Windows.

Posso incluir diretórios no arquivo TGZ?

Sim, o código pode ser modificado para incluir diretórios removendo a verificação !entry.IsDirectory e manipulando os diretórios adequadamente.

É possível automatizar a conversão de ZIP para TGZ?

Sim, o código fornecido pode ser integrado em aplicativos C# maiores, permitindo conversões automatizadas em lote ou tarefas agendadas.

Veja também