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.