C#でZIPを作成

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

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

学べること

この記事では、以下のことを学びます:

C# ZIPライブラリ

**Aspose.ZIP for .NETライブラリは、.NETアプリケーション内で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ファイルに追加する方法を示すコードサンプルです:

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

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

以下は、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をオンラインで抽出する