7z アーカイブの操作
概要
7-Zip は、高い圧縮率を備えたファイル アーカイバーです。 Aspose.ZIP API を使用すると、他のサードパーティ アプリケーションを必要とせずに、アプリケーションで 7-Zip アーカイブを作成および管理できます。 Aspose.ZIP API は、7-Zip アーカイブを操作するための SevenZipArchive クラスを提供します。 このクラスは、アーカイブに対して操作を実行するためのさまざまなメソッドを提供します。 API は、7z アーカイブ内の単一のファイルを表す SevenZipArchiveEntry クラスを提供します。
7-Zip 単一エントリの作成
次のコード例は、SevenZipArchive インスタンスを使用して 7-Zip エントリを作成する方法を示しています。
1 using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
2 {
3 using (var archive = new SevenZipArchive())
4 {
5 archive.CreateEntry("data.bin", "file.dat");
6 archive.Save(sevenZipFile);
7 }
8 }
7-Zip アーカイブ エントリの作成
SevenZipArchive クラスは、指定されたディレクトリにファイルとディレクトリを再帰的に追加するための CreateEntries メソッドを提供します。 次のコード例は、7-Zip アーカイブ エントリを作成する方法を示しています。
1 using (SevenZipArchive archive = new SevenZipArchive())
2 {
3 archive.CreateEntries(dataDir);
4 archive.Save("SevenZip.7z");
5 }
7-Zip 暗号化設定
Aspose.ZIP API は、7z アーカイブの AES 暗号化または復号化の設定を提供する SevenZipAESEncryptionSettings クラスを提供します。次のコード例は、AES 暗号化設定を提供する方法を示しています。
1 using (var archive = new SevenZipArchive(new SevenZipEntrySettings(null, new SevenZipAESEncryptionSettings("p@s$"))))
2 {
3 archive.CreateEntry("data.bin", new MemoryStream(new byte[] { 0x00, 0xFF }));
4 archive.Save("archive.7z");
5 }
AES-256 は、7z アーカイブで使用できる唯一の暗号化方式です。
LZMA 圧縮を使用した 7-Zip アーカイブ
次のコード例は、LZMA 圧縮と AES 暗号化を使用して 7z アーカイブを作成する方法を示しています。
手順: 作成LZMA 圧縮と C# による AES 暗号化を備えた 7z アーカイブ
- FileMode.Create を使用して、出力 7z アーカイブのファイル ストリームを開きます。
- SevenZipArchive クラスのインスタンスを作成します。
- CreateEntry メソッドを使用して、以下を指定してエントリをアーカイブに追加します。
- 圧縮するファイル。
- SevenZipLZMACompressionSettings を使用した LZMA 圧縮設定。
- SevenZipAESEncryptionSettings を使用した AES 暗号化設定 (パスワード付き)。
- Save メソッドを使用してアーカイブを保存し、圧縮および暗号化されたデータをファイルに書き込みます。
1 using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
2 {
3 using (var archive = new SevenZipArchive())
4 {
5 archive.CreateEntry("entry1.bin",
6 new MemoryStream(new byte[] { 0x00, 0xFF }),
7 new SevenZipEntrySettings(new SevenZipLZMACompressionSettings(),
8 new SevenZipAESEncryptionSettings("test1")),
9 new FileInfo("data1.bin"));
10 archive.Save(sevenZipFile);
11 }
12 }
同様に、BZip2、PPMd、LZMA2 圧縮方法を使用して 7z アーカイブを作成したり、圧縮せずにファイルを保存したりできます。
エントリに異なるパスワードを設定
次のコード例は、エントリごとに異なるパスワードで暗号化されたエントリを含むアーカイブを作成する方法を示しています。
手順: 作成LZMA 圧縮と C# による AES 暗号化を備えた 7z アーカイブ
- FileMode.Create を使用してファイル ストリームを開き、7z アーカイブを作成します。
- アーカイブにエントリとして追加するファイル (FileInfo オブジェクト) を準備します。
- SevenZipArchive クラスのインスタンスを作成します。
- エントリごとに、CreateEntry メソッドを使用してファイルをアーカイブに追加します。
- 圧縮方法を指定します(この場合、SevenZipStoreCompressionSettings)。
- SevenZipAESEncryptionSettings を使用して、エントリごとに異なるパスワードを設定します。
- Save メソッドを使用してアーカイブを保存し、暗号化されたエントリをファイルに書き込みます。
1 using (FileStream sevenZipFile = File.Open("archive.7z", FileMode.Create))
2 {
3 FileInfo fi1 = new FileInfo("data1.bin");
4 FileInfo fi2 = new FileInfo("data2.bin");
5 FileInfo fi3 = new FileInfo("data3.bin");
6 using (var archive = new SevenZipArchive())
7 {
8 archive.CreateEntry("entry1.bin", fi1, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test1")));
9 archive.CreateEntry("entry2.bin", fi2, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test2")));
10 archive.CreateEntry("entry3.bin", fi3, false, new SevenZipEntrySettings(new SevenZipStoreCompressionSettings(), new SevenZipAESEncryptionSettings("test3")));
11 archive.Save(sevenZipFile);
12 }
13 }
7z アーカイブの抽出
Now Aspose.ZIP can extract LZMA, LZMA2, BZip2 and PPMd compressed archives.
次のコード例は、7z アーカイブをディレクトリに抽出する方法を示しています。
1 using (SevenZipArchive archive = new SevenZipArchive("archive.7z"))
2 {
3 archive.ExtractToDirectory("ExtractionFolder");
4 }