** ZIP、RAR、TAR、GZIP、BZIP2 などのアーカイブは、通常、複数のファイルとフォルダーを1つのコンテナーに格納するために使用されます。アーカイブファイルのもう1つの主な理由は、圧縮アルゴリズムを使用してファイルの合計サイズを減らすことです。さまざまなファイル形式のドキュメントからデータを解析および抽出するのと同じように、アーカイブファイルを同じように扱うことができます。アーカイブ内で圧縮されているファイルから、テキスト、画像、さらにはメタデータを抽出できます。この記事では、.NETアプリケーションで C#を使用してZIPアーカイブデータを抽出する方法**について説明します。

以下のトピックについて説明します。

ZIPファイルデータを抽出するための.NETAPI

GroupDocs.Parserは、開発者向けのドキュメント解析ソリューションを提供します。この記事のC#の例では、。NETAPIを使用してZIPファイルデータを抽出するを使用します。 APIを使用すると、ワードプロセッシングドキュメント、プレゼンテーション、スプレッドシート、メール、データベース、電子書籍など、サポートされているドキュメント形式の長いリストからテキスト、画像、メタデータを抽出できます。

ダウンロードセクションからDLLまたはMSIインストーラーをダウンロードするか、NuGetを介してパッケージを.NETアプリケーションに追加してAPIをインストールできます。

PM> Install-Package GroupDocs.Parser

C#でZIPファイルデータを抽出する方法

GroupDocs.Parser for .NETは、ZIP、RAR、TAR、BZIP2、GZIPなどのさまざまな圧縮ファイル形式からのデータ抽出をサポートしています。圧縮ファイルからファイルのコレクションを取得した後、各ファイルからあらゆる種類のデータをさらに抽出できます。

次の手順は、ZIPファイルデータを抽出し、C#で囲まれた各ファイルからテキストを取得する方法を示しています。

  • ** Parser**クラスを使用してZIPアーカイブをロードします。
  • ** _ GetContainer_**メソッドを使用して添付ファイルを取得します
  • 添付ファイルのコレクションをトラバースします。
  • 添付ファイルごとに、Parserクラスのそれぞれのメソッドを使用してさまざまな種類のデータを取得できます。

ソースコードは、C#を使用してZIPファイルデータを抽出する方法を示しています。この例では、ZIPアーカイブ内のすべてのファイルからテキスト全体を抽出します。

// C#でZIPアーカイブデータを抽出する
using (Parser parser = new Parser(@"path/sample.zip"))
{
    // コンテナから添付ファイルを抽出します
    IEnumerable<ContainerItem> attachments = parser.GetContainer();

    // エンティティのコレクションを繰り返します
    foreach (ContainerItem item in attachments)
    {
        // ファイル情報を印刷する
        Console.WriteLine("-----------------------------------");
        Console.WriteLine("Name: " + item.Name);
        Console.WriteLine("File Size: " + item.Size + " Bytes");
        Console.WriteLine("-----------------------------------");

        try
        {
            using (Parser attachmentParser = item.OpenParser())
            {
                // ZIPエンティティテキストを抽出します
                using (TextReader reader = attachmentParser.GetText())
                {
                    Console.WriteLine(reader == null ? "No text" : reader.ReadToEnd());
                }
            }
        }
        catch (UnsupportedDocumentFormatException)
        {
            Console.WriteLine("Isn't supported.");
        }
    }
}

上記のソースコードの出力は、ZIPファイル内のPDFファイルの1つから取得されたテキストを示しています。

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

無料のAPIライセンスを取得する

評価の制限なしにAPIを使用するために、無料の一時ライセンスを取得することができます。

結論

要約すると、.NETアプリケーション内でC#を使用してZIPアーカイブデータを抽出する方法を学びました。具体的には、ZIP、RAR、TAR、GZIP、およびBZIPファイルからデータを抽出できるようになりました。圧縮ファイル用に独自のデータ抽出.NETアプリケーションを構築することもできます。 APIの詳細または学習については、ドキュメントにアクセスしてください。お問い合わせは、フォーラムまでお問い合わせください。

関連項目