GZipアーカイブ(.gzは、GNU zip圧縮アルゴリズムを使用して1つ以上のファイルを圧縮するために使用されます。UNIXオペレーティングシステムでのファイル圧縮に一般的に使用されます。この記事では、ファイルを圧縮してGZip(.gz)を作成する方法を学習します。プログラムでC#を使用してアーカイブします。さらに、この記事では、C#を使用してGZipアーカイブを抽出する方法についても説明します。7zファイルは、圧縮率が高いため人気があります。 C#アプリケーションでプログラムで7z(7zip)ファイルを開いたり抽出したりできます。 7zファイルエクストラクタを作成し、パスワードで保護されたアーカイブを解凍する方法については、次のセクションを確認してください。複数のファイルを圧縮形式でRARアーカイブとして保存できます。この記事では、圧縮されたRARアーカイブからファイルをUnrarまたは抽出する方法を学習します。詳細については、次のセクションをご覧ください。前の投稿では、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アーカイブを作成する方法を示しています。以前の投稿では、Aspose.ZIP for .NETを使用して、ファイルとフォルダーをZIPアーカイブに圧縮するさまざまな方法を学習しました。この投稿では、C#を使用してZIPアーカイブ内のファイルを抽出または解凍する方法を紹介します。また、パスワードで保護された、またはAESで暗号化されたZIPアーカイブをプログラムで抽出する方法についても説明します。この記事は次のセクションに分かれています。
ファイルを解凍するC#API C#のZIPアーカイブ内のファイルを解凍します パスワードで保護されたZIPファイルを解凍します C#でAES暗号化ZIPファイルを抽出します ファイルを解凍するC#API 開始する前に、ダウンロードして、Aspose.ZIP for .NETを参照するか、プロジェクトでNuGet PackageManagerを使用してそのパッケージをインストールしたことを確認してください。
C#を使用してZIPファイルを解凍します ZIPファイルを解凍するプロセスは、次の2つの方法で実行できます。
各ファイルを個別にZIPで解凍します 指定したフォルダにファイルを解凍します 最初の方法では、ZIPアーカイブ内の各ファイルに明示的にアクセスして解凍できます。さらに、抽出プロセスの進行状況を印刷できます。一方、2番目の方法では、ファイルを指定されたフォルダーに解凍するだけです。
アーカイブ内の各ファイルを個別に抽出する 以下は、ファイルにアクセスして抽出し、抽出の進行状況をC#で出力する手順です。
ZIPアーカイブをFileStreamオブジェクトで開きます。 アーカイブのインスタンスをFileStreamオブジェクトで作成して初期化します。 Archive.Entriesコレクションを使用してZIP内のファイルにアクセスします。 ArchiveEntry.ExtractionProgressedイベントハンドラーを設定して、抽出の進行状況を出力します。 ArchiveEntry.Extract(string)メソッドを使用してファイルを抽出/解凍します。 次のコードサンプルは、C#を使用してZIPアーカイブ内のファイルを抽出する方法を示しています。
// ZIPファイルを開く using (FileStream zipFile = File.Open("compressed_files.zip", FileMode.Open)) { using (Archive archive = new Archive(zipFile, new ArchiveLoadOptions())) { // ZIPアーカイブの各エントリにアクセスする for (int i = 0; i < archive.Entries.Count; i++) { int percentReady = 0; // 抽出の進行状況をコンソールに記録します。 archive.Entries[i].ExtractionProgressed += (s, e) => { int percent = (int)((100 * e.ZIPアーカイブは、1つ以上のファイルまたはフォルダーを1つのコンテナーに圧縮して保持するために使用されます。 ZIPアーカイブは、ファイルとフォルダーをカプセル化し、それらのメタデータ情報を保持します。アーカイブの最も一般的な使用法は、ストレージまたは送信用のファイルのサイズを縮小し、セキュリティのために暗号化を適用することです。ファイル圧縮ツールとは別に、自動圧縮/抽出機能は、ファイルのアップロード、ダウンロード、共有、または暗号化のために、さまざまなデスクトップおよびWebアプリケーション内でも使用されます。この記事も同様のシナリオを対象としており、C#を使用してプログラムでファイルまたはフォルダーを圧縮し、ZIPアーカイブを作成する簡単な方法をいくつか紹介します。
この記事では、次のZIPアーカイブ操作を実行する方法を学習します。
C#を使用してZIPアーカイブを作成する ZIPアーカイブに複数のファイルを追加する ZIPアーカイブにフォルダを追加する ZipCryptoを使用してパスワードで保護されたZIPアーカイブを作成する AES暗号化でZIPアーカイブを暗号化する 並列圧縮モードを設定する 前提条件-C#ZIPライブラリ Aspose.ZIP for .NETは、.NETアプリケーション内のファイルやフォルダーを圧縮または解凍するための強力で使いやすいAPIです。また、ZIPアーカイブ内のファイルを暗号化するためのAES暗号化技術も提供します。 NuGetからAPIをインストールするか、ダウンロードセクションからそのバイナリをダウンロードできます。
C#でZIPアーカイブを作成する ファイルをZIPアーカイブに追加して圧縮する手順は次のとおりです。
出力ZIPアーカイブ用のFileStreamオブジェクトを作成します。 ソースファイルをFileStreamオブジェクトに開きます。 Archiveクラスのオブジェクトを作成します。 Archive.CreateEntry(string, FileStream)メソッドを使用して、ファイルをアーカイブに追加します。 Archive.Save(FileStream)メソッドを使用してZIPアーカイブを作成します。 次のコードサンプルは、C#を使用してファイルをZIPアーカイブに追加する方法を示しています。
// 出力ZIPアーカイブ用のFileStreamを作成します using (FileStream zipFile = File.Open("compressed_file.zip", FileMode.Create)) { // アーカイブに追加するファイル using (FileStream source1 = File.Open("alice29.txt", FileMode.Open, FileAccess.Read)) { using (var archive = new Archive(new ArchiveEntrySettings())) { // アーカイブにファイルを追加する archive.CreateEntry("alice29.txt", source1); // ZIPファイル archive.Save(zipFile); } } } C#のZIPアーカイブに複数のファイルを追加する 複数のファイルをZIPアーカイブに追加する場合は、次のいずれかの方法を使用して追加できます。
FileStreamを使用して複数のファイルをZIPする このメソッドでは、FileStreamクラスを使用して、Archive.CreateEntry(string, FileStream)メソッドを使用してZIPアーカイブにファイルを追加します。次のコードサンプルは、C#で複数のファイルをZIPに追加する方法を示しています。
// 出力ZIPアーカイブ用のFileStreamを作成します using (FileStream zipFile = File.