Archivy jako ZIP, RAR, TAR, GZIP, BZIP2 se běžně používají k ukládání více než jednoho souboru a složky do jednoho kontejneru. Dalším hlavním důvodem pro archivaci souborů je snížení celkové velikosti souboru pomocí kompresních algoritmů. Stejně jako při analýze a extrahování dat z dokumentů různých formátů souborů můžete stejným způsobem zacházet s archivními soubory. Ze souborů komprimovaných v archivech můžete extrahovat text, obrázky a dokonce i metadata. V tomto článku budeme diskutovat o tom, jak extrahovat data archivů ZIP pomocí C# s vašimi aplikacemi .NET.

Níže jsou uvedena následující témata:

.NET API pro extrahování dat souborů ZIP

GroupDocs.Parser poskytuje řešení pro analýzu dokumentů pro vývojáře. Budu používat jeho .NET API k extrahování dat souborů ZIP v příkladech C# v tomto článku. API dále umožňuje extrakci textu, obrázků a metadat z dlouhého seznamu podporovaných formátů dokumentů, jako jsou dokumenty pro zpracování textu, prezentace, tabulky, e-maily, databáze, elektronické knihy a mnoho dalších.

Můžete si stáhnout DLL nebo MSI instalační program z části ke stažení nebo nainstalovat API přidáním jeho balíčku do vaší aplikace .NET prostřednictvím NuGet.

PM> Install-Package GroupDocs.Parser

Jak extrahovat data souborů ZIP v C#

GroupDocs.Parser for .NET podporuje extrakci dat z různých formátů kompresních souborů, jako jsou ZIP, RAR, TAR, BZIP2 a GZIP. Po načtení kolekce souborů z komprimovaného souboru můžete dále extrahovat jakýkoli druh dat z každého souboru.

Následující kroky ukazují, jak extrahovat data souborů ZIP a načíst text z každého přiloženého souboru v C#.

  • Načtěte archiv ZIP pomocí třídy Parser.
  • Získejte přílohy pomocí metody GetContainer
  • Projděte sbírku příloh.
  • Pro každou přílohu můžete získat její jiný druh dat pomocí příslušných metod třídy Parser.

Zdrojový kód ukazuje, jak extrahovat data souborů ZIP pomocí C#. V tomto příkladu budu extrahovat celý text ze všech souborů v archivu ZIP.

// Extrahujte data z archivů ZIP v C#
using (Parser parser = new Parser(@"path/sample.zip"))
{
    // Vyjměte přílohy z nádoby
    IEnumerable<ContainerItem> attachments = parser.GetContainer();

    // Iterujte přes kolekci entit
    foreach (ContainerItem item in attachments)
    {
        // Vytiskněte FILE INFO
        Console.WriteLine("-----------------------------------");
        Console.WriteLine("Name: " + item.Name);
        Console.WriteLine("File Size: " + item.Size + " Bytes");
        Console.WriteLine("-----------------------------------");

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

Výstup výše uvedeného zdrojového kódu zobrazuje text načtený z jednoho ze souborů PDF v souboru 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 

Získejte bezplatnou licenci API

Můžete získat bezplatnou dočasnou licenci, abyste mohli používat API bez omezení hodnocení.

Závěr

Abych to shrnul, naučili jste se, jak extrahovat data z archivů ZIP pomocí C# ve vaší aplikaci .NET. Konkrétně nyní můžete extrahovat data ze souborů ZIP, RAR, TAR, GZIP a BZIP. Můžete si dokonce vytvořit vlastní aplikaci pro extrakci dat .NET pro komprimované soubory. Další podrobnosti nebo informace o rozhraní API naleznete v dokumentaci. V případě dotazů nás kontaktujte prostřednictvím fóra.

Viz také