C#でZIPを作成

C#におけるZIPアーカイブの紹介

ZIPアーカイブは、ファイルやフォルダーを1つの管理可能なコンテナに圧縮して整理するために不可欠です。これにより、効率的なストレージと伝送のためにファイルサイズが削減されるだけでなく、メタデータが保持され、追加のセキュリティのために暗号化することもできます。この記事では、C#でプログラム的にZIPファイルを作成する方法、ファイルやフォルダーの追加、パスワード保護されたアーカイブの作成、AES暗号化の適用など、さまざまな方法を探ります。

学べること

この記事では、次のことを発見します:

C# ZIPライブラリ

**Aspose.ZIP for .NETライブラリは、.NETアプリケーション内でZIPファイル操作を処理するための堅牢なツールであり、ファイルやフォルダーをZIPまたはアンZIPするのを容易にします。また、AES暗号化をサポートしており、セキュリティが向上します。このライブラリは、NuGetから簡単にインストールするか、ダウンロード**セクションからバイナリをダウンロードできます。

C#でZIPアーカイブを作成する

C#でプログラム的にZIPファイルを作成するには、次の手順を実行します:

  1. 出力ZIPアーカイブ用のFileStreamオブジェクトを作成します。
  2. ソースファイルを_FileStream_オブジェクトとして開きます。
  3. Archiveクラスをインスタンス化します。
  4. Archive.CreateEntry(string, FileStream)メソッドを使用してファイルをアーカイブに追加します。
  5. Archive.Save(FileStream)メソッドを使用してZIPアーカイブを保存します。

以下は、C#でZIPアーカイブにファイルを追加する方法を示すコードサンプルです:

C#でZIPアーカイブに複数のファイルを追加する

ZIPアーカイブに複数のファイルを追加する必要がある場合、いくつかのアプローチを取ることができます:

FileStreamを使用して複数のファイルを追加

この方法では、_FileStream_クラスを使用してArchive.CreateEntry(String, FileStream)メソッドを介してファイルをZIPアーカイブに追加します。以下のようにして実行できます:

FileInfoを使用して複数のファイルを追加

また、FileInfoクラスを利用してファイルを読み込み、Archive.CreateEntry(String, FileInfo)メソッドでZIPアーカイブに追加することもできます。以下はコードサンプルです:

ファイルパスを使用

Archive.CreateEntry(String name, String path, Boolean openImmediately, ArchiveEntrySettings newEntrySettings)メソッドにファイルパスを直接指定することもできます。以下はその例です:

C#でZIPアーカイブにフォルダーを追加する

C#でZIPアーカイブにフォルダーを追加するには、次の手順を実行します:

  1. 出力ZIPアーカイブ用のFileStreamオブジェクトを作成します。
  2. Archiveクラスをインスタンス化します。
  3. DirectoryInfoクラスを使用してZIPするフォルダーを指定します。
  4. Archive.CreateEntries(DirectoryInfo)メソッドを使用してフォルダーをZIPに追加します。
  5. Archive.Save(FileStream)メソッドを使用してZIPアーカイブを保存します。

以下は、フォルダーをZIPファイルに追加する方法を示すコードサンプルです:

C#でZipCryptoを使用してパスワード保護されたZIPを作成する

ZIPアーカイブを保護するために、ZipCrypto暗号化を使用してパスワード保護を適用できます。これは、ArchiveEntrySettingsクラスをArchiveのコンストラクタで使用し、暗号化タイプをパラメータとして受け取ることで実現されます。

以下は、C#でZipCryptoを使用してパスワード保護されたZIPアーカイブを作成する方法です:

AES暗号化でパスワード保護されたZIPを作成する

Aspose.ZIP for .NETライブラリは、ZIPアーカイブを保護するためのAES暗号化もサポートしています。以下のAES暗号化メソッドから選択できます:

  • AES128
  • AES192
  • AES256

AES暗号化を適用するには、AesEcryptionSettingsクラスを使用します。以下は、C#でAES暗号化を使用してパスワード保護されたZIPを作成する方法を示すコードサンプルです:

並列圧縮モードを設定する

複数のエントリを効率的に処理するために、ParallelOptionsクラスを使用してAPIを並列圧縮に設定できます。利用可能な並列圧縮モードは次のとおりです:

  • Never - 並列で圧縮しない。
  • Always - 並列で圧縮する(メモリの問題に注意)。
  • Auto - エントリに基づいて並列圧縮を使用するかどうかを自動的に決定する。

以下は、Aspose C# ZIPライブラリを使用して複数のファイルをZIPする際に並列圧縮モードを設定する方法です:

C# .NET ZIPライブラリについてさらに学ぶ

C# ZIPライブラリについての理解を深めるために、以下のリソースを探索してください:

無料のオンラインZIP圧縮ツールを試す

Aspose.ZIP for .NETに基づく**無料のオンラインアプリケーション**を使用して、ZIPアーカイブにファイルを簡単に圧縮できます。

結論

この記事では、C#でプログラム的にZIPアーカイブを作成する方法を学びました。提供されたコードサンプルは、ZIPアーカイブにファイルやフォルダーを追加する方法、ZipCryptoおよびAES暗号化メソッドを使用してパスワード保護されたZIPファイルを作成する方法、並列圧縮を設定する方法を示しています。質問がある場合やさらなる支援が必要な場合は、**フォーラム**を通じてお気軽にお問い合わせください。

関連情報

C#を使用してファイルを解凍または抽出するC#を使用してZIPアーカイブ内のファイルを解凍するC# .NETで7z(7-Zip)アーカイブを作成する
C# .NETで7z(7zip)ファイルを開くまたは抽出するC#を使用してGZipアーカイブを作成および抽出するC#でRARファイルをZIPアーカイブに変換する
C#でZIPアーカイブをTARに変換するC#でフラットZIPアーカイブを作成するC#で実行可能な自己解凍アーカイブを作成する
C#でTAR.GZおよびTAR.XZファイルを作成するC#でZIPアーカイブ内のファイルを削除するC#でネストされたZIPアーカイブを抽出する
C#で複数のZIPまたはTARアーカイブをマージするZIPファイルを作成する方法7zをオンラインで抽出する