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

前回の投稿では、C#を使用してZIPアーカイブを作成するさまざまな方法を探りました。この記事では、オープンソースアーキテクチャに基づき、高い圧縮率を提供する7z形式に焦点を当て、その知識を拡張します。特に、7zは256ビットAES暗号化をサポートしており、ファイルだけでなく、その名前も保護できます。

このガイドでは、C#を使用してプログラム的に7z(7-Zip)アーカイブを作成する方法を学びます。以下の内容をカバーします:

すべての例とコードスニペットは、Aspose.ZIP for .NET APIに基づいています。以下のいずれかの方法でAPIをインストールしてください:

C#を使用して7z(7-Zip)アーカイブを作成する

ファイルを7zアーカイブに圧縮するには、主に2つのシナリオがあります:単一ファイルを扱う場合と複数ファイルを扱う場合です。両方の状況を処理する方法は次のとおりです。

単一エントリの7zアーカイブを作成する

単一ファイルの7zアーカイブを作成するには、以下の手順に従います:

  1. 7zファイルを作成するために新しいFileStreamを開きます。
  2. SevenZipArchiveクラスのインスタンスを作成します。
  3. SevenZipArchive.CreateEntry(String, String, Boolean, SevenZipEntrySettings)メソッドを使用してファイルをアーカイブに追加します。
  4. SevenZipArchive.Save(Stream)メソッドを使用してアーカイブを保存します。

以下は、上記の手順を示すC# 7zアーカイブの例です:

複数エントリの7zアーカイブを作成する

複数のファイルを圧縮する必要がある場合は、それらをフォルダーに配置し、そのフォルダーのパスをSevenZipArchive.CreateEntries()メソッドに渡します。手順は以下の通りです:

  1. SevenZipArchiveクラスのインスタンスを作成します。
  2. フォルダーのパスをSevenZipArchive.CreateEntries(String, Boolean)メソッドに渡します。
  3. SevenZipArchive.Save(String)メソッドを呼び出します。

以下は、C#を使用して複数のエントリを持つ7zアーカイブを作成する方法です:

C#を使用してAES暗号化された7zアーカイブを作成する

7z形式は、追加のセキュリティのためにAES暗号化をサポートしています。7zファイルを暗号化するには、SevenZipAESEncryptionSettingsクラスを使用します。以下は、C#を使用してAES暗号化された7zアーカイブを作成する方法を示すコードサンプルです:

C#を使用して7zエントリに異なるパスワードを設定する

7z形式では、各ファイルエントリにユニークなパスワードを割り当てることもできます。複数のファイルを圧縮する場合は、それぞれに異なるパスワードを指定できます。以下は、その方法です:

  1. 7zアーカイブファイル用の新しいFileStreamを作成します。
  2. FileInfoクラスを使用して各ファイルエントリにアクセスします。
  3. SevenZipArchiveクラスのインスタンスを作成します。
  4. SevenZipArchive.CreateEntry(String, FileInfo, Boolean, SevenZipEntrySettings)メソッドを使用して7zアーカイブにエントリを追加します。
  5. SevenZipArchive.Save(Stream)メソッドを使用してアーカイブを保存します。

以下のコードサンプルを参照して、7zアーカイブ内の各エントリに異なるパスワードを設定する方法を確認してください:

結論

この記事では、C#を使用してプログラム的に7zアーカイブを作成する方法を説明しました。また、セキュリティを強化するためのAES暗号化の実装方法や、各ファイルエントリにユニークなパスワードを設定する方法についても探りました。ファイルの圧縮と解凍に関するさらなる情報は、Aspose.ZIPドキュメントを確認してください。

関連記事

Asposeプラグインを利用することで、.NET 7-Zip圧縮をアプリケーションに簡単に統合し、ファイル管理プロセスを合理化し、ソフトウェアの機能を強化できます。わずか**$99**で、大きなファイルの処理、非同期圧縮などをサポートする強力な機能を解放できます。