C# を使用してアーカイブを圧縮または抽出する方法

概要

この記事では、アーカイブを圧縮または解凍する方法について説明します。これらのアーカイブは、Zip、7z、Rar などの形式である可能性があります。以下のトピックについて説明します。

形式: ZIP

形式: ZIP - パスワード

形式: 7z

形式: RAR

この記事で取り上げるその他のトピック。

C# アーカイブの圧縮または抽出

このページでは、 Aspose.ZIP for .NET を使用して C# で標準的なアーカイブ操作を実行する方法を示します。 Aspose.ZIP パッケージは、次の NuGet コマンドを使用して .NET プロジェクトに追加できます。

1PM> Install-Package Aspose.Zip

アセンブリ参照として .NET プロジェクトに直接追加することもできます。 Aspose.ZIP ライブラリは、ホームページ https://products.aspose.com/zip/net/ からダウンロードできます。

Aspose.ZIP .NET ライブラリは、.NET Core をサポートする任意の OS (Windows、Linux、macOS など) で使用できます。

C# で ZIP ファイルを作成する方法

手順: C# で Zip ファイルを作成する

  1. Archiveクラスのインスタンスを作成します。
  2. Archive.CreateEntryメソッドを使用してファイルを追加します。
  3. Archive.Save メソッドを使用してファイルを圧縮します。
1using (var archive = new Archive())
2{
3   archive.CreateEntry("entry_name1.dat", "input_file1.dat");
4   archive.CreateEntry("entry_name2.dat", "input_file2.dat");
5   archive.Save("result_archive.zip");
6}

アーカイブ クラス コンストラクターは、 Deflate 圧縮アルゴリズム を使用し、暗号化は行わずに通常の ZIP アーカイブを作成します。

C# でファイルを解凍する方法

手順: C# でファイルをフォルダーに解凍する

  1. _zip ファイル_を使用して Archive クラスのインスタンスを作成します。
  2. Archive.ExtractToDirectory メソッドを使用して、_zip ファイル_をフォルダーに解凍します。
1using (var archive = new Archive("input_archive.zip"))
2{
3   archive.ExtractToDirectory("\\outputDirectory");
4}

アーカイブ クラスのコンストラクターは、任意の ZIP アーカイブを開くことができます。入力アーカイブがパスワードで保護されている場合は、ArchiveLoadOptions を 2 番目のパラメータとして指定する必要があります (以下の例を参照)。

C#で7zファイルを圧縮する方法

手順: C# で 7z アーカイブを作成する

  1. SevenZipLZMACompressionSettings を使用して SevenZipArchive クラスのインスタンスを作成します。
  2. SevenZipArchive.CreateEntries メソッドを呼び出してファイルを追加します。
  3. SevenZipArchive.Save メソッドを呼び出して、7z 形式で保存します。
1using (var archive = new SevenZipArchive(new SevenZipEntrySettings(new SevenZipLZMACompressionSettings())))
2{
3	archive.CreateEntries(CommonConstants.TestFilesFolder + "ManyFilesToCompress");
4	archive.Save(CommonConstants.TestOutFolder + "7Z_ManyFilesToCompress.7z");
5}

新しい 7z アーカイブを作成するには、SevenZipArchive クラス コンストラクターを使用する必要があります。上記のサンプルでは従来の LZMA 圧縮を使用していますが、他の圧縮オプションや暗号化オプションも使用できます。

C#で7zファイルを抽出する方法

手順: C# で 7z ファイルを抽出する

  1. _7z ファイル_を使用して SevenZipArchive クラスのインスタンスを作成します。
  2. SevenZipArchive.ExtractToDirectory メソッドを呼び出して、7z ファイルの内容を抽出します。
1using (var archive = new SevenZipArchive("input_archive.7z"))
2{
3	archive.ExtractToDirectory("\\outputDirectory");
4}

上記のサンプルでは、​​SevenZipArchive クラスのコンストラクターは、保護されていない 7z アーカイブを開きます。

C# で RAR ファイルを抽出する方法

手順: C# で RAR ファイルを抽出する

  1. _RAR ファイル_を使用して RarArchive クラスのインスタンスを作成します。
  2. RarArchive.ExtractToDirectory メソッドを呼び出して RAR ファイルの内容を抽出します。
1using (var archive = new RarArchive("input_archive.rar"))
2{
3	archive.ExtractToDirectory("\\outputDirectory");
4}

上記のサンプルでは、​​RarArchive クラス コンストラクターは、保護されていない RAR アーカイブを開きます。

C# でファイルをパスワード付きで ZIP 圧縮する方法

手順: C# でパスワード付き Zip ファイルを作成する

  1. Archive クラスのインスタンスを作成します。
  2. ArchiveEntrySettings を渡し、password を持つ TraditionalEncryptionSettings のオブジェクトで encryptionSettings プロパティを設定します。
  3. Archive.CreateEntry メソッドを複数回呼び出して、必要な数のファイルを追加します。
  4. Archive.Save メソッドを使用して、_Zip ファイル_として保存します。
1using (var archive = new Archive(new ArchiveEntrySettings(encryptionSettings: new TraditionalEncryptionSettings("pass"))))
2{
3   archive.CreateEntry("entry_name1.dat", "input_file1.dat");
4   archive.CreateEntry("entry_name2.dat", "input_file2.dat");
5   archive.Save("result_archive.zip");
6}

encryptionSettings パラメーターは、パスワードで保護された ZIP アーカイブを作成するために使用されます。

C# でパスワードを使用してファイルを解凍する方法

手順: C# を使用してパスワードで保護された Zip ファイルを解凍します

  1. Archive クラスのインスタンスを作成します。
  2. ArchiveLoadOptions オブジェクトを渡し、 DecryptionPassword プロパティを zip ファイルの_password_で設定します。
  3. Archive.ExtractToDirectory メソッドを使用して、_zip ファイル_をフォルダーに解凍します。
1using (var archive = new Archive("input_archive.zip", new ArchiveLoadOptions{DecryptionPassword = "pass"}))
2{
3   archive.ExtractToDirectory("\\outputDirectory");
4}

ArchiveLoadOptions と DecryptionPassword プロパティ値は、パスワードで保護された ZIP アーカイブを開くために使用されます。

関連項目

この記事では、これらのトピックについても説明します。コードは上記と同じです。

形式: ZIP

形式: 7z

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.