フッターコンテンツにスキップ
IRONZIPの使用

C#でディレクトリにファイルを解凍する方法

ファイルの解凍は、特に圧縮アーカイブを扱う際に、ソフトウェア開発で一般的なタスクです。 In this article, we’ll explore how to extract files from ZIP archives in C# using the IronZIP library.

Windowsアプリケーションや.NETプロジェクトで作業している場合でも、ファイルの解凍プロセスを理解することは非常に価値があります。 それでは、C#のコードベース内でZIPファイルを効率的に処理する方法を学びましょう。

この記事で説明すること:

  1. IronZIPライブラリのインストールプロセス
  2. ZIPアーカイブの抽出方法
  3. パスワード保護されたZIPアーカイブの抽出方法
  4. ZIPファイルの作成方法
  5. パスワード保護されたZIPファイルの作成方法

なぜファイルを解凍するのか?

ZIPファイル、つまりZIPアーカイブは、複数のファイルを単一の圧縮コンテナにまとめたものです。 これらのファイルを解凍することは、圧縮されたデータを抽出し、元の状態に復元することを伴います。 C#アプリケーションでデータにアクセスまたは操作する必要がある場合、このプロセスは不可欠です。 IronZIPは、圧縮データを管理するための簡単なメソッドを提供することで、この作業を効率化します。

IronZIPとは何か?

IronZIP is a powerful C# ZIP archive library that facilitates creating, reading, and 抽出を容易にする強力なC# ZIPアーカイブライブラリです。 ファイルを圧縮したり、既存のアーカイブからデータを抽出したり、ZIPファイルを管理したりする必要がある場合でも、IronZIPはこれらの作業を効率的に達成するためのユーザーフレンドリーなAPIを提供します。 IronZIPは、.NETアプリケーションでのZIPアーカイブの扱いを簡単にします。

それは、ZIP、TAR、GZIP、BZIP2など、さまざまなアーカイブ形式をサポートします。IronZIPはクロスプラットフォームであり、.NET Core、.NET Standard、および.NET Frameworkと互換性があります。 また、それはパスワード保護アーカイブ、カスタマイズ可能な圧縮レベル、ファイルエントリ管理などの高度な機能を提供します。

ディレクトリにC#でファイルを抽出する方法

今、私はC#でZIPファイルから抽出するためのいくつかの例を紹介します。 Visual Studioで新しいC#プロジェクトを作成することから始めます。 適切なプロジェクトタイプ(例:コンソールアプリケーション、Windowsフォーム、ASP.NET Coreなど)を選択します。 次に、IronZIP NuGetパッケージをインストールする必要があります。

NuGetパッケージマネージャーを通じてIronZIPをインストールする

IronZIP NuGetパッケージをインストールするには、パッケージマネージャーコンソールで次のコマンドを使用できます。

Install-Package IronZip

あるいは、Visual StudioのパッケージマネージャーUIを使用してIronZIPパッケージを検索してインストールすることもできます。

C#コードにおいて、IronZIP名前空間をインポートしてそのクラスとメソッドにアクセスします。

using IronZip;
using IronZip;
Imports IronZip
$vbLabelText   $csharpLabel

ZIPファイルをC#で抽出するコード例

次のコードは、指定されたディレクトリにファイルを解凍します。

// This line extracts the "Images.zip" archive to the "Extracted Images" directory
IronZipArchive.ExtractArchiveToDirectory(@"E:\Images.zip", "Extracted Images");
// This line extracts the "Images.zip" archive to the "Extracted Images" directory
IronZipArchive.ExtractArchiveToDirectory(@"E:\Images.zip", "Extracted Images");
' This line extracts the "Images.zip" archive to the "Extracted Images" directory
IronZipArchive.ExtractArchiveToDirectory("E:\Images.zip", "Extracted Images")
$vbLabelText   $csharpLabel

上記のコードは、指定されたZIPファイル("E:\Images.zip")を読み込み、その内容を解凍し、抽出されたファイルを"Extracted Images"という名のディレクトリに配置します。

説明

IronZipArchiveは、IronZIPライブラリが提供するクラスを指します。 それは、C#コードでZIPアーカイブを扱うためのメインのエントリポイントです。 ExtractArchiveToDirectory(...)は、IronZipArchiveクラスが提供するメソッド(または関数)です。 これにより、ZIPアーカイブ(この場合、ファイル"E:\Images.zip")の内容を指定されたディレクトリ(この場合、"Extracted Images"という名前のディレクトリ)に抽出できます。

メソッドは2つのパラメータを取ります:

  1. 最初のパラメータ(@"E:\Images.zip")は、抽出したいZIPファイルへのパスです。
  2. 2番目のパラメータ("Extracted Images")は、ZIPアーカイブからファイルを抽出したいディレクトリです。

出力:

ディレクトリにファイルを解凍する方法:図1 - Extracted Imagesディレクトリ内の抽出されたファイル

パスワード保護されたZIPファイルを抽出する方法

IronZIPは、暗号化されたZIPファイルを抽出するための簡単なメソッドを提供します。 次のコードは、パスワード保護されたZIPファイルからすべてのファイルを抽出する方法を示しています。

// This line extracts the "EncryptedImages.zip" archive to the "ExtractedImages" directory with the given password
IronZipArchive.ExtractArchiveToDirectory(@"EncryptedImages.zip", "ExtractedImages", "zipP@55w0rd");
// This line extracts the "EncryptedImages.zip" archive to the "ExtractedImages" directory with the given password
IronZipArchive.ExtractArchiveToDirectory(@"EncryptedImages.zip", "ExtractedImages", "zipP@55w0rd");
' This line extracts the "EncryptedImages.zip" archive to the "ExtractedImages" directory with the given password
IronZipArchive.ExtractArchiveToDirectory("EncryptedImages.zip", "ExtractedImages", "zipP@55w0rd")
$vbLabelText   $csharpLabel

上記のコードは、"EncryptedImages.zip"アーカイブの内容を"ExtractedImages"ディレクトリにIronZIPを使用して抽出します。それはまた、指定されたパスワード"zipP@55w0rd"を使用してZIPファイルが暗号化されていることを示し、抽出には提供されたパスワードが必要であることを示しています。 それは既存のファイルを上書きします。

出力:

ディレクトリにファイルを解凍する方法:図2 - Extracted Imagesディレクトリ内の抽出されたパスワード保護されたファイル

C#でIronZIPを使用してファイルをディレクトリに解凍するには、IronZIPライブラリの機能を最大限に活用する必要があります。IronZipArchive.ExtractArchiveToDirectoryなどの機能を使用することで、開発者は簡単に圧縮ファイルを抽出でき、ローカルファイルヘッダーを扱うための直接的なメカニズムを提供します。 それは、アプリケーション内でZIPファイルとRARファイルを効率的に更新する方法を提供します。

IronZIPは、C#および.NETアプリケーションでZIPファイルを作成するためのメソッドも提供します。 C#でZIPアーカイブを作成しましょう。

ZIPアーカイブを作成する方法

次のコード例は、ZIPアーカイブを作成します。

static void Main(string[] args)
{
    // Create a new ZIP archive with a high compression level (9)
    using (var archive = new IronZipArchive(9))
    {
        // Add image files to the archive
        archive.Add(@"E:\Images\image1.png");
        archive.Add(@"E:\Images\image2.png");
        archive.Add(@"E:\Images\image3.png");
        archive.Add(@"E:\Images\image4.png");

        // Export the ZIP archive to the file "MyImages.zip"
        archive.SaveAs("MyImages.zip");
    }
}
static void Main(string[] args)
{
    // Create a new ZIP archive with a high compression level (9)
    using (var archive = new IronZipArchive(9))
    {
        // Add image files to the archive
        archive.Add(@"E:\Images\image1.png");
        archive.Add(@"E:\Images\image2.png");
        archive.Add(@"E:\Images\image3.png");
        archive.Add(@"E:\Images\image4.png");

        // Export the ZIP archive to the file "MyImages.zip"
        archive.SaveAs("MyImages.zip");
    }
}
Shared Sub Main(ByVal args() As String)
	' Create a new ZIP archive with a high compression level (9)
	Using archive = New IronZipArchive(9)
		' Add image files to the archive
		archive.Add("E:\Images\image1.png")
		archive.Add("E:\Images\image2.png")
		archive.Add("E:\Images\image3.png")
		archive.Add("E:\Images\image4.png")

		' Export the ZIP archive to the file "MyImages.zip"
		archive.SaveAs("MyImages.zip")
	End Using
End Sub
$vbLabelText   $csharpLabel

上記のコードは、IronZIPを使用して新しいZIPアーカイブ(圧縮レベル9)を作成し、指定されたファイルパスからそれぞれが画像ファイル(image1.pngimage2.pngimage3.pngimage4.png)を表す複数のエントリを追加する方法を示しています。

最後に、SaveAsメソッドを使用して、作成されたZIPアーカイブを指定されたディレクトリに"MyImages.zip"としてエクスポートします。 圧縮レベル9は最大の圧縮を意味し、小さいファイルサイズをもたらしますが、処理時間が長くなる可能性があります。

ディレクトリにファイルを解凍する方法:図3 - 前のコードから出力されたZIPアーカイブ

パスワード保護されたZIPアーカイブを作成する方法

次のコードは、パスワード保護されたZIPファイルを作成します。

// Create a new ZIP archive with a high compression level (9)
using (var archive = new IronZipArchive(9))
{
    // Password protect the ZIP archive (Support AES128 & AES256)
    archive.Encrypt("miPassw0rd", EncryptionMethods.AES256);

    // Add image files to the archive
    archive.Add(@"E:\Images\image1.png");
    archive.Add(@"E:\Images\image2.png");

    // Export the ZIP archive as "PasswordProtectedImages.zip"
    archive.SaveAs("PasswordProtectedImages.zip");
}
// Create a new ZIP archive with a high compression level (9)
using (var archive = new IronZipArchive(9))
{
    // Password protect the ZIP archive (Support AES128 & AES256)
    archive.Encrypt("miPassw0rd", EncryptionMethods.AES256);

    // Add image files to the archive
    archive.Add(@"E:\Images\image1.png");
    archive.Add(@"E:\Images\image2.png");

    // Export the ZIP archive as "PasswordProtectedImages.zip"
    archive.SaveAs("PasswordProtectedImages.zip");
}
' Create a new ZIP archive with a high compression level (9)
Using archive = New IronZipArchive(9)
	' Password protect the ZIP archive (Support AES128 & AES256)
	archive.Encrypt("miPassw0rd", EncryptionMethods.AES256)

	' Add image files to the archive
	archive.Add("E:\Images\image1.png")
	archive.Add("E:\Images\image2.png")

	' Export the ZIP archive as "PasswordProtectedImages.zip"
	archive.SaveAs("PasswordProtectedImages.zip")
End Using
$vbLabelText   $csharpLabel

上記のコードは、IronZIPを使用して指定された暗号化方法(この場合はAES256)を使用してパスワード保護されたZIPアーカイブを作成する方法を示しています。 パスワード"miPassw0rd"はZIPファイルのセキュリティを確保するために設定されています。その後、指定されたファイルパスからアーカイブに2つの画像ファイル(image1.pngimage2.png)を追加します。

最後に、SaveAsメソッドを利用して、パスワード保護されたZIPアーカイブを"PasswordProtectedImages.zip"としてエクスポートします。これにより、指定されたパスワードおよび暗号化方法でコンテンツのセキュリティを確保します。 IronZIPはAES128、AES256、および従来の方法をサポートします。

結論

要約すると、この記事では、IronZIPライブラリを使用してC#で圧縮ファイルをプログラムで処理するための重要な側面を網羅しました。 From the installation process to practical examples of extracting, creating, and securing ZIP archives, developers have been provided with valuable insights. IronZIPのユーザーフレンドリーなAPI、クロスプラットフォームの互換性、および暗号化方法のサポートにより、さまざまなC#アプリケーションでZIPファイルを効率的に管理するための多用途なソリューションとなります。

既存のファイルを更新したり、パスワード保護されたアーカイブを扱ったりする場合でも、IronZIPはプロセスを効率的に簡略化し、C#プロジェクトで効果的なファイル操作機能を求める開発者にとって強力なツールセットを提供します。

IronZIPは、長期間の使用のための無料試用を含む柔軟なライセンスオプションを提供します。 開発者は、IronZIPをC#アプリケーションに導入する際に、プロジェクトの要件に最適なライセンスモデルを選択し、多用途性と利便性の両方を確保できます。

よくある質問

C#でZIPアーカイブからファイルを抽出するにはどうすればよいですか?

C#でIronZIPを使用してZIPアーカイブからファイルを抽出できます。IronZipArchive.ExtractArchiveToDirectory メソッドにより、ZIPファイルのパスと抽出先ディレクトリを指定できます。

.NETプロジェクトにIronZIPをインストールする手順は何ですか?

.NETプロジェクトにIronZIPをインストールするには、Visual StudioのNuGetパッケージマネージャーを使用できます。パッケージマネージャーコンソールでコマンド Install-Package IronZIP を実行するか、NuGetパッケージマネージャーUIでIronZIPを検索してプロジェクトに追加します。

IronZIPを使用してパスワード保護されたZIPファイルを抽出できますか?

はい、IronZIPはパスワード保護されたZIPファイルの抽出をサポートしています。ExtractArchiveToDirectory メソッドでパスワードをパラメーターとして提供する必要があります。

C#でプログラム的にZIPファイルを作成するにはどうすればよいですか?

C#でIronZIPを使用してZIPファイルを作成するには、新しいIronZipArchiveをインスタンス化し、Addメソッドでファイルを追加し、SaveAsメソッドでアーカイブを保存します。

IronZIPは複数のアーカイブ形式をサポートしていますか?

はい、IronZIPはZIP、TAR、GZIP、BZIP2など複数のアーカイブ形式をサポートしており、C#アプリケーションで異なる圧縮ファイルタイプを柔軟に扱うことができます。

IronZIPはクロスプラットフォームの.NETアプリケーションと互換性がありますか?

IronZIPはクロスプラットフォームの.NETアプリケーションと互換性があり、.NET Core、.NET Standard、および.NET Frameworkをサポートしているため、さまざまな開発環境に対応しています。

IronZIPにはどのような暗号化方法が利用できますか?

IronZIPは、パスワード保護されたZIPアーカイブを作成するための暗号化メソッドを提供しています。Encryptメソッドを使用してパスワードを設定し、アーカイブをセキュリティ保護できます。

購入前にIronZIPを評価する方法は?

IronZIPは無料トライアルと柔軟なライセンスオプションを提供しており、開発者が購入前にライブラリの機能とパフォーマンスを評価できます。

C#でのZIPファイルの取り扱いにおいて、IronZIPが提供する利点は何ですか?

IronZIPは使いやすいAPIを提供し、さまざまなアーカイブ形式と暗号化方法に対応し、ZIPアーカイブの作成、読み取り、抽出のプロセスを簡素化し、C#開発者にとって効率的なツールとなります。

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。