Arquivos como ZIP, RAR, TAR, GZIP, BZIP2 são comumente usados para armazenar mais de um arquivo e pasta em um único contêiner. Outra razão principal para os arquivos compactados é reduzir o tamanho total do arquivo usando algoritmos de compactação. Assim como analisar e extrair dados de documentos de vários formatos de arquivo, você pode tratar os arquivos compactados da mesma maneira. Você pode extrair o texto, as imagens e até os metadados dos arquivos compactados nos arquivos. Neste artigo, discutiremos como extrair os dados de arquivos ZIP usando C# com seus aplicativos .NET.

Os seguintes tópicos são abordados abaixo:

API .NET para extrair dados de arquivos ZIP

GroupDocs.Parser fornece a solução de análise de documentos para desenvolvedores. Usarei sua API .NET para extrair dados de arquivos ZIP nos exemplos C# deste artigo. A API permite ainda a extração de texto, imagens e metadados de uma longa lista de formatos de documentos suportados, como documentos de processamento de texto, apresentações, planilhas, e-mails, bancos de dados, eBooks e muitos outros.

Você pode baixar o instalador DLLs ou MSI da seção de downloads ou instalar a API adicionando seu pacote ao seu aplicativo .NET via NuGet.

PM> Install-Package GroupDocs.Parser

Como extrair dados de arquivos ZIP em C

O GroupDocs.Parser for .NET suporta extração de dados de vários formatos de arquivo de compactação como ZIP, RAR, TAR, BZIP2 e GZIP. Depois de recuperar a coleção de arquivos do arquivo compactado, você pode extrair ainda qualquer tipo de dados de cada arquivo.

As etapas a seguir mostram como extrair dados de arquivos ZIP e recuperar texto de cada arquivo incluído em C#.

  • Carregue o arquivo ZIP usando a classe Parser.
  • Obtenha os anexos usando o método GetContainer
  • Atravesse a coleção de anexos.
  • Para cada anexo, você pode obter seus diferentes tipos de dados usando os respectivos métodos da classe Parser.

O código-fonte mostra como extrair os dados dos arquivos ZIP usando C#. Neste exemplo, extrairei todo o texto de todos os arquivos dentro do arquivo ZIP.

// Extrair dados de arquivos ZIP em C #
using (Parser parser = new Parser(@"path/sample.zip"))
{
    // Extraia anexos do contêiner
    IEnumerable<ContainerItem> attachments = parser.GetContainer();

    // Iterar sobre a coleção de entidades
    foreach (ContainerItem item in attachments)
    {
        // Imprima as INFORMAÇÕES DO ARQUIVO
        Console.WriteLine("-----------------------------------");
        Console.WriteLine("Name: " + item.Name);
        Console.WriteLine("File Size: " + item.Size + " Bytes");
        Console.WriteLine("-----------------------------------");

        try
        {
            using (Parser attachmentParser = item.OpenParser())
            {
                // Extraia o texto da entidade ZIP
                using (TextReader reader = attachmentParser.GetText())
                {
                    Console.WriteLine(reader == null ? "No text" : reader.ReadToEnd());
                }
            }
        }
        catch (UnsupportedDocumentFormatException)
        {
            Console.WriteLine("Isn't supported.");
        }
    }
}

A saída do código-fonte acima mostra o texto recuperado de um dos arquivos PDF dentro do arquivo ZIP.

 -----------------------------------
 Name: sample.pdf
 File Size: 33370 Bytes
 -----------------------------------

 Heading

 This is the first paragraph of the sample document that contains some sample
 text, bulleted list, numbered list and more.

    •  Bullet Item 1
    •  Bullet Item 2
    •  Bullet Item 3
 
 This is the second paragraph of the sample document and after this, there is a
 numbered list: 

    1. Numbered Item 1
    2. Numbered Item 2
    3. Numbered Item 3 

Obtenha uma licença de API gratuita

Você pode obter uma licença temporária gratuita para usar a API sem as limitações de avaliação.

Conclusão

Para resumir, você aprendeu como extrair dados de arquivos ZIP usando C# em seu aplicativo .NET. Mais especificamente, agora você pode extrair dados de arquivos ZIP, RAR, TAR, GZIP e BZIP. Você pode até mesmo construir seu próprio aplicativo .NET de extração de dados para arquivos compactados. Para obter mais detalhes ou aprender sobre a API, visite a documentação. Para dúvidas, entre em contato conosco através do fórum.

Veja também