Aspose.Zip for .NET で Zip ファイルを変更する
導入
Zip ファイルはデータの整理と圧縮に不可欠ですが、その内容をプログラムで変更するにはどうすればよいでしょうか。解決策は、C# による Zip ファイルの操作を簡素化する強力なライブラリである Aspose.Zip for .NET にあります。このチュートリアルでは、Zip ファイルの抽出、削除、エントリの追加を手順ごとに説明します。
前提条件
始める前に、以下のものを用意してください。
-
Aspose.Zip for .NETライブラリ: プロジェクトにライブラリをインストールします。ダウンロードできます。ここ.
-
ドキュメントディレクトリ: 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エントリを特定する
次に、内部の 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 のドキュメントはどこにありますか?
完全なドキュメントは入手可能ですここ.