Archieven zoals ZIP, RAR, TAR, GZIP, BZIP2 worden vaak gebruikt om meer dan één bestand en map in één enkele container op te slaan. Een andere belangrijke reden voor archiefbestanden is om de totale bestandsgrootte te verkleinen met behulp van compressie-algoritmen. Net zoals het ontleden en extraheren van gegevens uit documenten met verschillende bestandsindelingen, kunt u de archiefbestanden op dezelfde manier behandelen. U kunt de tekst, afbeeldingen en zelfs metadata extraheren uit de bestanden die in de archieven zijn gecomprimeerd. In dit artikel bespreken we hoe u de ZIP-archieven kunt extraheren met behulp van C# met uw .NET-toepassingen.

De volgende onderwerpen komen hieronder aan bod:

.NET API om gegevens uit ZIP-bestanden te extraheren

GroupDocs.Parser biedt de oplossing voor het parseren van documenten voor ontwikkelaars. Ik zal zijn .NET API gebruiken om gegevens uit ZIP-bestanden te extraheren in de C#-voorbeelden van dit artikel. De API maakt het verder mogelijk om tekst, afbeeldingen en metadata te extraheren uit een lange lijst van ondersteunde documentformaten zoals tekstverwerkingsdocumenten, presentaties, spreadsheets, e-mails, databases, eBooks en vele andere.

U kunt de DLL’s of het MSI-installatieprogramma downloaden van de downloadsectie of de API installeren door het bijbehorende pakket toe te voegen aan uw .NET-toepassing via NuGet.

PM> Install-Package GroupDocs.Parser

Hoe ZIP-bestandsgegevens in C# te extraheren

De GroupDocs.Parser for .NET ondersteunt gegevensextractie uit verschillende compressiebestandsindelingen zoals ZIP, RAR, TAR, BZIP2 en GZIP. Nadat u de verzameling bestanden uit het gecomprimeerde bestand hebt opgehaald, kunt u alle soorten gegevens uit elk bestand extraheren.

De volgende stappen laten zien hoe u gegevens uit ZIP-bestanden kunt extraheren en tekst kunt ophalen uit elk ingesloten bestand in C#.

  • Laad het ZIP-archief met de klasse Parser.
  • Verkrijg de bijlagen met de methode GetContainer.
  • Doorzoek de verzameling bijlagen.
  • Voor elke bijlage kunt u de verschillende soorten gegevens ophalen met behulp van de respectieve methoden van de Parser-klasse.

De broncode laat zien hoe de gegevens van de ZIP-bestanden kunnen worden geëxtraheerd met behulp van C#. In dit voorbeeld zal ik de volledige tekst extraheren uit alle bestanden in het ZIP-archief.

// ZIP-archieven extraheren in C#
using (Parser parser = new Parser(@"path/sample.zip"))
{
    // Haal bijlagen uit de container
    IEnumerable<ContainerItem> attachments = parser.GetContainer();

    // Herhaal de verzameling van entiteiten
    foreach (ContainerItem item in attachments)
    {
        // Druk de BESTANDSINFO af
        Console.WriteLine("-----------------------------------");
        Console.WriteLine("Name: " + item.Name);
        Console.WriteLine("File Size: " + item.Size + " Bytes");
        Console.WriteLine("-----------------------------------");

        try
        {
            using (Parser attachmentParser = item.OpenParser())
            {
                // Extraheer de tekst van de ZIP-entiteit
                using (TextReader reader = attachmentParser.GetText())
                {
                    Console.WriteLine(reader == null ? "No text" : reader.ReadToEnd());
                }
            }
        }
        catch (UnsupportedDocumentFormatException)
        {
            Console.WriteLine("Isn't supported.");
        }
    }
}

De uitvoer van de bovenstaande broncode toont de tekst die is opgehaald uit een van de PDF-bestanden in het ZIP-bestand.

 -----------------------------------
 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 

Ontvang een gratis API-licentie

U kunt een gratis tijdelijke licentie krijgen om de API te gebruiken zonder de evaluatiebeperkingen.

Conclusie

Kortom, u hebt geleerd hoe u gegevens uit ZIP-archieven kunt extraheren met behulp van C# binnen uw .NET-toepassing. Meer specifiek kunt u nu gegevens extraheren uit ZIP-, RAR-, TAR-, GZIP- en BZIP-bestanden. U kunt zelfs uw eigen .NET-toepassing voor gegevensextractie bouwen voor gecomprimeerde bestanden. Ga voor meer informatie of meer informatie over de API naar de documentatie. Neem voor vragen contact met ons op via het forum.

Zie ook