C# .NETを使用してプログラム的に7z(7-Zip)アーカイブを作成する
前回の投稿では、C#を使用してZIPアーカイブを作成するさまざまな方法を探りました。この記事では、オープンソースアーキテクチャに基づき、高い圧縮率を提供する7z形式に焦点を当て、その知識を拡張します。特に、7zは256ビットAES暗号化をサポートしており、ファイルだけでなく、その名前も保護できます。 このガイドでは、C#を使用してプログラム的に7z(7-Zip)アーカイブを作成する方法を学びます。以下の内容をカバーします: 単一エントリの7zアーカイブを作成する AES暗号化された7zアーカイブを作成する 7zエントリに異なるパスワードを設定する すべての例とコードスニペットは、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ドキュメントを確認してください。 関連記事 C#を使用してZIPファイルとフォルダーを作成する C#を使用してZIPアーカイブ内のファイルを解凍する Asposeプラグインを利用することで、.NET 7-Zip圧縮をアプリケーションに簡単に統合し、ファイル管理プロセスを合理化し、ソフトウェアの機能を強化できます。わずか**$99**で、大きなファイルの処理、非同期圧縮などをサポートする強力な機能を解放できます。