導入

ZIPファイルはデータの整理と圧縮に不可欠ですが、プログラムでその内容を変更するにはどうすればよいでしょうか?解決策は、C#によるZIPファイルの操作を簡素化する堅牢なライブラリ、Aspose.Zip for .NETにあります。このチュートリアルでは、ZIPファイルの抽出、削除、エントリの追加をステップバイステップで解説します。

前提条件

始める前に、次のものを用意してください。

  1. Aspose.Zip for .NETライブラリ: プロジェクトにライブラリをインストールします。ダウンロードできます。 ここ.

  2. ドキュメントディレクトリ: zipファイルを保存するディレクトリを設定します。 "Your Document Directory" コードに実際のパスを入力します。

必要な名前空間をインポートする

まず、必要な名前空間をインポートします。

using Aspose.Zip;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

ステップ1:外側のZipファイルを開く

まず、メインの zip ファイル (外側の zip) を開きます。

string dataDir = "Your Data Directory";
using (Archive outer = new Archive(dataDir + "outer.zip"))
{
    // 内部のZIPエントリの識別に進みます
}

ステップ2:内側のジップエントリを特定する

次に、内部の zip ファイルを特定し、削除する準備をします。

List<ArchiveEntry> entriesToDelete = new List<ArchiveEntry>();
List<string> namesToInsert = new List<string>();
List<MemoryStream> contentToInsert = new List<MemoryStream>();

foreach (ArchiveEntry entry in outer.Entries)
{
    if (entry.Name.EndsWith(".zip", StringComparison.InvariantCultureIgnoreCase))
    {
        entriesToDelete.Add(entry);
        
        using (MemoryStream innerCompressed = new MemoryStream())
        {
            entry.Open().CopyTo(innerCompressed);
            
            // 内部エントリの抽出
            using (Archive inner = new Archive(innerCompressed))
            {
                foreach (ArchiveEntry ie in inner.Entries)
                {
                    namesToInsert.Add(ie.Name);
                    MemoryStream content = new MemoryStream();
                    ie.Open().CopyTo(content);
                    contentToInsert.Add(content);
                }
            }
        }
    }
}

ステップ3: 内部アーカイブエントリを削除する

必要なエントリを収集したら、内部の zip エントリを削除します。

foreach (ArchiveEntry e in entriesToDelete)
{
    outer.DeleteEntry(e);
}

ステップ4: 外側のZipファイルに変更されたエントリを追加する

これで、新しく抽出したエントリを外側の zip ファイルに追加することができます。

for (int i = 0; i < namesToInsert.Count; i++)
{
    outer.CreateEntry(namesToInsert[i], contentToInsert[i]);
}

ステップ5: 変更したZipファイルを保存する

最後に、変更を新しい zip ファイルに保存します。

outer.Save(dataDir + "flatten.zip");

結論

Aspose.Zip for .NET は、ZIP ファイルをプログラムで操作するための強力かつシンプルな方法を提供します。このチュートリアルでは、ZIP ファイルの抽出、削除、エントリの追加を取り上げ、ライブラリの汎用性を示しました。様々なシナリオを試して、ファイル操作スキルを向上させましょう。

よくある質問

Aspose.Zip for .NET を他のプログラミング言語で使用できますか?

Aspose.Zip は主に .NET アプリケーション用に設計されていますが、Aspose はさまざまなプログラミング言語向けに同様のライブラリを提供しています。

Aspose.Zip for .NET の無料試用版はありますか?

はい、無料トライアルをダウンロードできます ここ.

Aspose.Zip for .NET のサポートを受けるにはどうすればよいですか?

訪問 Aspose.Zip フォーラム サポートとディスカッションのため。

Aspose.Zip for .NET の一時ライセンスを購入できますか?

はい、臨時免許証を取得できます ここ.

Aspose.Zip for .NET のドキュメントはどこにありますか?

完全なドキュメントは入手可能です ここ.