ZIPアーカイブは、1つ以上のファイルまたはフォルダーを1つのコンテナーに圧縮して保持するために使用されます。 ZIPアーカイブは、ファイルとフォルダーをカプセル化し、それらのメタデータ情報を保持します。アーカイブの最も一般的な使用法は、ストレージまたは送信用のファイルのサイズを縮小し、セキュリティのために暗号化を適用することです。ファイル圧縮ツールとは別に、自動圧縮/抽出機能は、ファイルのアップロード、ダウンロード、共有、または暗号化のために、さまざまなデスクトップおよびWebアプリケーション内でも使用されます。この記事も同様のシナリオを対象としており、C#を使用してプログラムでファイルまたはフォルダーを圧縮し、ZIPアーカイブを作成する簡単な方法をいくつか紹介します。
この記事では、次のZIPアーカイブ操作を実行する方法を学習します。
C#を使用してZIPアーカイブを作成する ZIPアーカイブに複数のファイルを追加する ZIPアーカイブにフォルダを追加する ZipCryptoを使用してパスワードで保護されたZIPアーカイブを作成する AES暗号化でZIPアーカイブを暗号化する 並列圧縮モードを設定する 前提条件-C#ZIPライブラリ Aspose.ZIP for .NETは、.NETアプリケーション内のファイルやフォルダーを圧縮または解凍するための強力で使いやすいAPIです。また、ZIPアーカイブ内のファイルを暗号化するためのAES暗号化技術も提供します。 NuGetからAPIをインストールするか、ダウンロードセクションからそのバイナリをダウンロードできます。
C#でZIPアーカイブを作成する ファイルをZIPアーカイブに追加して圧縮する手順は次のとおりです。
出力ZIPアーカイブ用のFileStreamオブジェクトを作成します。 ソースファイルをFileStreamオブジェクトに開きます。 Archiveクラスのオブジェクトを作成します。 Archive.CreateEntry(string, FileStream)メソッドを使用して、ファイルをアーカイブに追加します。 Archive.Save(FileStream)メソッドを使用してZIPアーカイブを作成します。 次のコードサンプルは、C#を使用してファイルをZIPアーカイブに追加する方法を示しています。
// 出力ZIPアーカイブ用のFileStreamを作成します using (FileStream zipFile = File.Open("compressed_file.zip", FileMode.Create)) { // アーカイブに追加するファイル using (FileStream source1 = File.Open("alice29.txt", FileMode.Open, FileAccess.Read)) { using (var archive = new Archive(new ArchiveEntrySettings())) { // アーカイブにファイルを追加する archive.CreateEntry("alice29.txt", source1); // ZIPファイル archive.Save(zipFile); } } } C#のZIPアーカイブに複数のファイルを追加する 複数のファイルをZIPアーカイブに追加する場合は、次のいずれかの方法を使用して追加できます。
FileStreamを使用して複数のファイルをZIPする このメソッドでは、FileStreamクラスを使用して、Archive.CreateEntry(string, FileStream)メソッドを使用してZIPアーカイブにファイルを追加します。次のコードサンプルは、C#で複数のファイルをZIPに追加する方法を示しています。
// 出力ZIPアーカイブ用のFileStreamを作成します using (FileStream zipFile = File.