前の投稿では、C#を使用してZIPアーカイブを作成するさまざまな方法について説明しました。この記事では、暗号化されパスワードで保護されたZIPアーカイブを作成する方法についても説明しました。 ZIP形式の他に、7z、tar、RARなどの一般的に使用されるアーカイブ形式があります。これらの中で、7zアーカイブ形式はオープンソースアーキテクチャに基づいていますまた、高い圧縮率でファイルやフォルダを圧縮するために使用されます。また、256ビットのAES暗号化をサポートし、ファイル名の暗号化も可能にします。この記事では、C#を使用してプログラムで7z(7-Zip)アーカイブを作成する方法を示します。
この記事は次のセクションに分かれています。
C#を使用して7z(7-Zip)アーカイブを作成する C#を使用してAES暗号化7zアーカイブを作成する C#を使用して7zエントリに異なるパスワードを設定する この記事のすべての手順とコードサンプルは、Aspose.ZIP for.NETに基づいています。したがって、次のいずれかの方法を使用してAPIをインストールしたことを確認してください。
NuGetパッケージマネージャーを使用してインストールします。 ダウンロード DLL and add its reference to the project. C#を使用して7z(7-Zip)アーカイブを作成する ファイルを7zアーカイブに圧縮するシナリオは2つ考えられます。ファイルが1つしかない場合もあれば、圧縮するファイルが多数ある場合もあります。両方のシナリオを明示的に処理できます。
単一エントリで7zアーカイブを作成する 以下は、単一のエントリで7zアーカイブを作成する手順です。
新しいFileStreamを開いて、7zファイルを作成します。 SevenZipArchiveクラスのインスタンスを作成します。 SevenZipArchive.CreateEntry(string, string, Boolean, SevenZipEntrySettings)メソッドを使用してファイルをアーカイブに追加します。 SevenZipArchive.Save(Stream)メソッドを使用してアーカイブを作成および保存します。 次のコードサンプルは、C#を使用して7z(7-Zip)アーカイブを作成する方法を示しています。
using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create)) { using (var archive = new SevenZipArchive()) { archive.CreateEntry("data.bin", "file.dat"); archive.Save(sevenZipFile); } } 複数のエントリで7zアーカイブを作成する この場合、ファイルをフォルダーに入れ、フォルダーのパスをSevenZipArchive.CreateEntries()メソッドに渡すことができます。以下は、7zアーカイブに複数のファイルエントリを追加する手順です。
SevenZipArchiveクラスのインスタンスを作成します。 フォルダのパスをSevenZipArchive.CreateEntries(string, Boolean)メソッドに渡します。 SevenZipArchive.Save(String)メソッドを呼び出します。 次のコードサンプルは、C#を使用して複数のエントリを持つ7zアーカイブを作成する方法を示しています。
using (SevenZipArchive archive = new SevenZipArchive()) { archive.CreateEntries(dataDir); archive.Save("SevenZip.7z"); } C#を使用してAES暗号化7zアーカイブを作成する 7z形式は、ファイルを保護するためのAES暗号化をサポートしています。 7zファイルを暗号化するために、SevenZipAESEncryptionSettingsクラスが使用されます。次のコードサンプルは、C#を使用してAES暗号化7zアーカイブを作成する方法を示しています。