前回の投稿では、C#を使用してZIPアーカイブを作成するさまざまな方法を探りました。この記事では、オープンソースアーキテクチャに基づき、高い圧縮率を提供する7z形式に焦点を当て、その知識を拡張します。特に、7zは256ビットAES暗号化をサポートしており、ファイルだけでなく、その名前も保護できます。
このガイドでは、C#を使用してプログラム的に7z(7-Zip)アーカイブを作成する方法を学びます。以下の内容をカバーします:
すべての例とコードスニペットは、Aspose.ZIP for .NET APIに基づいています。以下のいずれかの方法でAPIをインストールしてください:
- NuGetパッケージマネージャーを使用してインストールします。
- DLLをダウンロードし、プロジェクトにその参照を追加します。
C#を使用して7z(7-Zip)アーカイブを作成する
ファイルを7zアーカイブに圧縮するには、主に2つのシナリオがあります:単一ファイルを扱う場合と複数ファイルを扱う場合です。両方の状況を処理する方法は次のとおりです。
単一エントリの7zアーカイブを作成する
単一ファイルの7zアーカイブを作成するには、以下の手順に従います:
- 7zファイルを作成するために新しいFileStreamを開きます。
- SevenZipArchiveクラスのインスタンスを作成します。
- SevenZipArchive.CreateEntry(String, String, Boolean, SevenZipEntrySettings)メソッドを使用してファイルをアーカイブに追加します。
- SevenZipArchive.Save(Stream)メソッドを使用してアーカイブを保存します。
以下は、上記の手順を示すC# 7zアーカイブの例です:
複数エントリの7zアーカイブを作成する
複数のファイルを圧縮する必要がある場合は、それらをフォルダーに配置し、そのフォルダーのパスをSevenZipArchive.CreateEntries()メソッドに渡します。手順は以下の通りです:
- SevenZipArchiveクラスのインスタンスを作成します。
- フォルダーのパスをSevenZipArchive.CreateEntries(String, Boolean)メソッドに渡します。
- SevenZipArchive.Save(String)メソッドを呼び出します。
以下は、C#を使用して複数のエントリを持つ7zアーカイブを作成する方法です:
C#を使用してAES暗号化された7zアーカイブを作成する
7z形式は、追加のセキュリティのためにAES暗号化をサポートしています。7zファイルを暗号化するには、SevenZipAESEncryptionSettingsクラスを使用します。以下は、C#を使用してAES暗号化された7zアーカイブを作成する方法を示すコードサンプルです:
C#を使用して7zエントリに異なるパスワードを設定する
7z形式では、各ファイルエントリにユニークなパスワードを割り当てることもできます。複数のファイルを圧縮する場合は、それぞれに異なるパスワードを指定できます。以下は、その方法です:
- 7zアーカイブファイル用の新しいFileStreamを作成します。
- FileInfoクラスを使用して各ファイルエントリにアクセスします。
- SevenZipArchiveクラスのインスタンスを作成します。
- SevenZipArchive.CreateEntry(String, FileInfo, Boolean, SevenZipEntrySettings)メソッドを使用して7zアーカイブにエントリを追加します。
- SevenZipArchive.Save(Stream)メソッドを使用してアーカイブを保存します。
以下のコードサンプルを参照して、7zアーカイブ内の各エントリに異なるパスワードを設定する方法を確認してください:
結論
この記事では、C#を使用してプログラム的に7zアーカイブを作成する方法を説明しました。また、セキュリティを強化するためのAES暗号化の実装方法や、各ファイルエントリにユニークなパスワードを設定する方法についても探りました。ファイルの圧縮と解凍に関するさらなる情報は、Aspose.ZIPドキュメントを確認してください。
関連記事
Asposeプラグインを利用することで、.NET 7-Zip圧縮をアプリケーションに簡単に統合し、ファイル管理プロセスを合理化し、ソフトウェアの機能を強化できます。わずか**$99**で、大きなファイルの処理、非同期圧縮などをサポートする強力な機能を解放できます。