Archiwa takie jak ZIP, RAR, TAR, GZIP, BZIP2 są powszechnie używane do przechowywania więcej niż jednego pliku i folderu w jednym kontenerze. Innym głównym powodem plików archiwalnych jest zmniejszenie całkowitego rozmiaru pliku za pomocą algorytmów kompresji. Podobnie jak w przypadku analizowania i wyodrębniania danych z dokumentów o różnych formatach plików, pliki archiwalne można traktować w ten sam sposób. Możesz wyodrębnić tekst, obrazy, a nawet metadane z plików skompresowanych w archiwach. W tym artykule omówimy, jak wyodrębnić dane z archiwów ZIP przy użyciu języka C# z aplikacjami .NET.

Poniżej omówiono następujące tematy:

.NET API do wyodrębniania plików ZIP Dane

GroupDocs.Parser zapewnia programistom rozwiązanie do analizowania dokumentów. Będę używać jego .NET API do wyodrębniania danych z plików ZIP w przykładach C# z tego artykułu. Interfejs API umożliwia ponadto wyodrębnianie tekstu, obrazów i metadanych z długiej listy obsługiwanych formatów dokumentów, takich jak dokumenty edytorów tekstu, prezentacje, arkusze kalkulacyjne, e-maile, bazy danych, e-booki i wiele innych.

Możesz pobrać instalator DLL lub MSI z sekcji pobierania lub zainstalować API, dodając jego pakiet do swojej aplikacji .NET za pośrednictwem NuGet.

PM> Install-Package GroupDocs.Parser

Jak wyodrębnić dane plików ZIP w C#

GroupDocs.Parser for .NET obsługuje ekstrakcję danych z różnych formatów plików kompresji, takich jak ZIP, RAR, TAR, BZIP2 i GZIP. Po pobraniu kolekcji plików ze skompresowanego pliku można dalej wyodrębnić dowolne dane z każdego pliku.

Poniższe kroki pokazują, jak wyodrębnić dane plików ZIP i pobrać tekst z każdego załączonego pliku w języku C#.

  • Załaduj archiwum ZIP przy użyciu klasy Parser.
  • Zdobądź załączniki metodą GetContainer.
  • Przejrzyj kolekcję załączników.
  • Dla każdego załącznika można uzyskać inny rodzaj danych za pomocą odpowiednich metod klasy Parser.

Kod źródłowy pokazuje, jak wyodrębnić dane plików ZIP przy użyciu języka C#. W tym przykładzie wyodrębnię cały tekst ze wszystkich plików w archiwum ZIP.

// Wyodrębnij dane archiwów ZIP w C#
using (Parser parser = new Parser(@"path/sample.zip"))
{
    // Wyciągnij załączniki z pojemnika
    IEnumerable<ContainerItem> attachments = parser.GetContainer();

    // Iteruj po zbiorze jednostek
    foreach (ContainerItem item in attachments)
    {
        // Wydrukuj INFORMACJE O PLIKU
        Console.WriteLine("-----------------------------------");
        Console.WriteLine("Name: " + item.Name);
        Console.WriteLine("File Size: " + item.Size + " Bytes");
        Console.WriteLine("-----------------------------------");

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

Dane wyjściowe powyższego kodu źródłowego przedstawiają tekst pobrany z jednego z plików PDF w pliku 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 

Uzyskaj bezpłatną licencję API

Możesz uzyskać bezpłatną tymczasową licencję, aby korzystać z API bez ograniczeń ewaluacyjnych.

Wniosek

Podsumowując, nauczyłeś się, jak wyodrębniać dane z archiwów ZIP przy użyciu języka C# w aplikacji .NET. Mówiąc dokładniej, możesz teraz wyodrębniać dane z plików ZIP, RAR, TAR, GZIP i BZIP. Możesz nawet zbudować własną aplikację .NET do ekstrakcji danych dla skompresowanych plików. Aby uzyskać więcej informacji lub dowiedzieć się więcej o interfejsie API, odwiedź dokumentację. W przypadku pytań skontaktuj się z nami za pośrednictwem forum.

Zobacz też