Archive wie ZIP, RAR, TAR, GZIP, BZIP2 werden häufig verwendet, um mehr als eine Datei und einen Ordner in einem einzigen Container zu speichern. Ein weiterer Hauptgrund für Archivdateien besteht darin, die Gesamtdateigröße mithilfe von Komprimierungsalgorithmen zu reduzieren. Genau wie beim Analysieren und Extrahieren von Daten aus Dokumenten verschiedener Dateiformate können Sie die Archivdateien auf die gleiche Weise behandeln. Sie können Text, Bilder und sogar Metadaten aus den Dateien extrahieren, die in den Archiven komprimiert sind. In diesem Artikel werden wir diskutieren, wie Sie die ZIP-Archivdaten mit C# mit Ihren .NET-Anwendungen extrahieren.

Nachfolgend werden folgende Themen behandelt:

.NET-API zum Extrahieren von Daten aus ZIP-Dateien

GroupDocs.Parser bietet Entwicklern die Lösung zum Analysieren von Dokumenten. Ich werde seine .NET-API zum Extrahieren von ZIP-Dateidaten in den C#-Beispielen dieses Artikels verwenden. Die API ermöglicht außerdem die Extraktion von Text, Bildern und Metadaten aus einer langen Liste von unterstützten Dokumentformaten wie Textverarbeitungsdokumenten, Präsentationen, Tabellenkalkulationen, E-Mails, Datenbanken, eBooks und vielen anderen.

Sie können das DLLs- oder MSI-Installationsprogramm aus dem Download-Bereich herunterladen oder die API installieren, indem Sie ihr Paket über NuGet zu Ihrer .NET-Anwendung hinzufügen.

PM> Install-Package GroupDocs.Parser

So extrahieren Sie Daten aus ZIP-Dateien in C#

Der GroupDocs.Parser for .NET unterstützt die Datenextraktion aus verschiedenen komprimierten Dateiformaten wie ZIP, RAR, TAR, BZIP2 und GZIP. Nachdem Sie die Sammlung von Dateien aus der komprimierten Datei abgerufen haben, können Sie jede Art von Daten aus jeder Datei weiter extrahieren.

Die folgenden Schritte zeigen, wie Sie Daten aus ZIP-Dateien extrahieren und Text aus jeder eingeschlossenen Datei in C# abrufen.

  • Laden Sie das ZIP-Archiv mit der Klasse Parser.
  • Rufen Sie die Anhänge mit der Methode GetContainer ab
  • Durchsuchen Sie die Sammlung von Anhängen.
  • Für jeden Anhang können Sie seine unterschiedliche Art von Daten mit den entsprechenden Methoden der Klasse Parser abrufen.

Der Quellcode zeigt, wie die Daten der ZIP-Dateien mit C# extrahiert werden. In diesem Beispiel werde ich den gesamten Text aus allen Dateien im ZIP-Archiv extrahieren.

// ZIP-Archivdaten in C# extrahieren
using (Parser parser = new Parser(@"path/sample.zip"))
{
    // Extrahieren Sie Anhänge aus dem Container
    IEnumerable<ContainerItem> attachments = parser.GetContainer();

    // Iterieren Sie über die Sammlung von Entitäten
    foreach (ContainerItem item in attachments)
    {
        // Drucken Sie die DATEI-INFO
        Console.WriteLine("-----------------------------------");
        Console.WriteLine("Name: " + item.Name);
        Console.WriteLine("File Size: " + item.Size + " Bytes");
        Console.WriteLine("-----------------------------------");

        try
        {
            using (Parser attachmentParser = item.OpenParser())
            {
                // Extrahieren Sie den ZIP-Entitätstext
                using (TextReader reader = attachmentParser.GetText())
                {
                    Console.WriteLine(reader == null ? "No text" : reader.ReadToEnd());
                }
            }
        }
        catch (UnsupportedDocumentFormatException)
        {
            Console.WriteLine("Isn't supported.");
        }
    }
}

Die Ausgabe des obigen Quellcodes zeigt den Text, der aus einer der PDF-Dateien in der ZIP-Datei abgerufen wurde.

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

Holen Sie sich eine kostenlose API-Lizenz

Sie können eine kostenlose temporäre Lizenz erhalten, um die API ohne die Evaluierungseinschränkungen zu verwenden.

Fazit

Zusammenfassend haben Sie gelernt, wie Sie ZIP-Archivdaten mit C# in Ihrer .NET-Anwendung extrahieren. Genauer gesagt können Sie jetzt Daten aus ZIP-, RAR-, TAR-, GZIP- und BZIP-Dateien extrahieren. Sie können sogar Ihre eigene .NET-Anwendung zur Datenextraktion für komprimierte Dateien erstellen. Weitere Einzelheiten oder Informationen zur API finden Sie in der Dokumentation. Bei Fragen kontaktieren Sie uns über das Forum.

Siehe auch