IRONZIPの使用

C#でディレクトリにZipアーカイブを抽出する方法

チャクニット・ビン
チャクニット・ビン
2024年3月26日
共有:

ZIPファイルは、複数のファイルやディレクトリを1つのアーカイブにバンドルする便利な方法です。バックアップの管理、ソフトウェアの配布、ファイルの共有など、ZIPアーカイブからの効率的な抽出は非常に重要です。 IronZIP、強力な.NETライブラリは、簡単なメソッドを提供することでこのプロセスを簡単にします。

C#(シーシャープ)でZipアーカイブをディレクトリに展開する方法;

  1. IronZIPライブラリをプロジェクトにインストールします。

  2. IronZIPが提供するExtractArchiveToDirectory()メソッドを使用します。

  3. ZIPファイルのパスを指定してください(例:「output.zip」)と、抽出先ディレクトリを指定してください(例:「extracted」)。

IronZIPとは何ですか?

IronZIPは、.NETアプリケーション内でZIPファイルを処理する多用途のC#ライブラリです。 デスクトップソフトウェア、Webアプリケーション、または自動化ツールを構築しているかどうかに関わらず、IronZIPはZIPアーカイブの作成読み取り、および抽出を簡素化します。

主な機能

高パフォーマンス: IronZIP はファイルの圧縮と解凍のための強力なエンジンを備えており、高速で、より少ないリソースで実行します。

使いやすさ: 開発者はIronZIPを自分のプロジェクトにシームレスに統合できます。 このライブラリは、ZIPファイルを扱うためのシンプルなメソッドを提供します。

NuGetの統合: NuGetパッケージマネージャーを介してIronZIPをインストールし、C#のziparchive抽出機能にアクセス可能にします。

クロスプラットフォーム互換性: IronZIP は、Windows、Linux、macOS を含むさまざまなプラットフォームをサポートしています。

ドキュメントとチュートリアル: 公式のドキュメントおよびチュートリアルを確認して、IronZIPを効果的に活用する方法を学びましょう。

IronZIPは、ファイルをzip圧縮して配布したり、バックアップを管理したり、データアーカイブを扱ったりする際に、信頼性が高く効率的なソリューションを開発者に提供します。

ZIPアーカイブをディレクトリに展開する

始める前に、IronZIP ライブラリをプロジェクトにインストールする必要があります。 NuGet Package Manager Consoleを使って以下のコマンドで追加できる:

Install-Package IronZip

上記のコマンドは、IronZIPライブラリと必要な依存関係をプロジェクトにインストールします。

また、NuGet Package Manager for Solutionから "IronZIP "でダウンロードすることもできます。

コードに必要なusingディレクティブを含めてください。

using IronZip;
using IronZip.Enum;
using IronZip;
using IronZip.Enum;
Imports IronZip
Imports IronZip.Enum
$vbLabelText   $csharpLabel

ZIPファイルを指定のディレクトリに解凍する。

IronZIPは、ZIPアーカイブをディレクトリに展開するプロセスを簡素化します。 たった1行のコードでファイルを取り出すことができる。 次のコードは、指定されたパスにあるすべてのファイルを抽出する。

internal class Program
 { 
static void Main(string [] args)
 {
     IronZipArchive.ExtractArchiveToDirectory("Contracts.zip", "Contracts");
 }
}
internal class Program
 { 
static void Main(string [] args)
 {
     IronZipArchive.ExtractArchiveToDirectory("Contracts.zip", "Contracts");
 }
}
Friend Class Program
Shared Sub Main(ByVal args() As String)
	 IronZipArchive.ExtractArchiveToDirectory("Contracts.zip", "Contracts")
End Sub
End Class
$vbLabelText   $csharpLabel

上記のコード行は、"Contracts.zip "ファイルの中身を取り出し、"Contracts "という名前の保存先フォルダに配置する。これは、C#(シーシャープ)アプリケーションでZIPアーカイブをプログラムで処理する便利な方法です。

説明

  1. IronZipArchive:IronZIP ライブラリのクラスまたはオブジェクト。 ZIPファイルを操作するためのメソッドとプロパティを提供します。

  2. .ExtractArchiveToDirectory("Contracts.zip", "Contracts"):

    1. ExtractArchiveToDirectory メソッドは IronZipArchive のインスタンスで呼び出されます。

    2. 最初の引数 "Contracts.zip "は、解凍したいZIPファイルへのパスを表します。
  3. 2番目の引数 "Contracts "は、抽出されたファイルが置かれるターゲット・ディレクトリを指定する。

    指定したディレクトリにすでにファイルが存在する場合は、既存のファイルを上書きする。 解凍されたファイルは以下の通り:

    C#でZipアーカイブをディレクトリに抽出する方法: 図1 - ファイルシステム

パスワードで保護されたZIPアーカイブを展開する

IronZIPは、パスワードで保護された圧縮ファイルを解凍する方法も提供します。 次の例は、パスワードで保護されたZIPファイルからファイルを抽出します。

IronZipArchive.ExtractArchiveToDirectory("PasswordProtectedContracts.zip", "Contracts", "Pa55w0r2Zip");
IronZipArchive.ExtractArchiveToDirectory("PasswordProtectedContracts.zip", "Contracts", "Pa55w0r2Zip");
IronZipArchive.ExtractArchiveToDirectory("PasswordProtectedContracts.zip", "Contracts", "Pa55w0r2Zip")
$vbLabelText   $csharpLabel

上記のコードは、"PasswordProtectedContracts.zip "というパスワードで保護されたZIPファイルの内容を抽出し、"Contracts "というディレクトリに配置する。指定されたパスワードは、保護されたZIPファイルの安全な抽出を保証します。

既存のアーカイブにアクセス

IronZIPは、指定されたディレクトリから解凍することなく、既存のZIPファイルにアクセスすることができます。 この機能は、圧縮されたアーカイブからファイルを抽出したり、特定のエントリが存在するかどうかを検証したり、あるいはユーザーの操作に応じてZIPファイルの内容を動的に検査したりするようなシナリオにとって重要である。

ZIPアーカイブのエントリーを見る

次のコード例は、既存のZIPファイルにアクセスし、そのエントリーをコンソールに表示します。

using (var zipArchive = new IronZipArchive("Contracts.zip")) // ziparchive archive
 {
     // Get Entries list
     List<string> names = zipArchive.GetArchiveEntryNames(); 
     foreach (string name in names)
     {
         Console.WriteLine(name); //// method creates ziparchiveentry entry
     }
 }
using (var zipArchive = new IronZipArchive("Contracts.zip")) // ziparchive archive
 {
     // Get Entries list
     List<string> names = zipArchive.GetArchiveEntryNames(); 
     foreach (string name in names)
     {
         Console.WriteLine(name); //// method creates ziparchiveentry entry
     }
 }
Using zipArchive = New IronZipArchive("Contracts.zip") ' ziparchive archive
	 ' Get Entries list
	 Dim names As List(Of String) = zipArchive.GetArchiveEntryNames()
	 For Each name As String In names
		 Console.WriteLine(name) '// method creates ziparchiveentry entry
	 Next name
End Using
$vbLabelText   $csharpLabel

上記のコードは、"Contracts.zip"という名前のZIPファイルの中身を確認するためにIronZIPを使用しています。これは、GetArchiveEntryNamesメソッドを使用して、アーカイブからエントリ名(ファイル名のようなもの)のリストを取得するためのIronZipArchiveオブジェクトを作成します。 ZIPファイルがパスワードで保護されている場合、IronZipArchiveオブジェクトを作成する際にパスワードを含めることができます。 そして、それぞれのファイル名をコンソールに出力する。

こうすることで、圧縮アーカイブ内の指定されたエントリーを扱うことができる。

出力は以下の通りです:

C# で ZIP アーカイブをディレクトリに抽出する方法: 図 2 - ZIP アーカイブ エントリの出力

指定されたエントリがZIPファイルに存在するかどうかをチェックする

また、指定されたエントリーが指定されたZIPファイルに存在するかどうかもチェックできる。次のコードはそのデモンストレーションです。

using (var zipArchive = new IronZipArchive("Contracts.zip"))
 {
     if(zipArchive.CheckArchiveEntryExist("Contract1.pdf"))
     {
         Console.WriteLine("File Exist");
     }
 }
using (var zipArchive = new IronZipArchive("Contracts.zip"))
 {
     if(zipArchive.CheckArchiveEntryExist("Contract1.pdf"))
     {
         Console.WriteLine("File Exist");
     }
 }
Using zipArchive = New IronZipArchive("Contracts.zip")
	 If zipArchive.CheckArchiveEntryExist("Contract1.pdf") Then
		 Console.WriteLine("File Exist")
	 End If
End Using
$vbLabelText   $csharpLabel

上記のコードはIronZIPライブラリを使って、"Contracts.zip "というファイルに "Contract1.pdf "というエントリが含まれているかどうかをチェックしている。これは、ZIPファイルのIronZipArchiveオブジェクトを作成することで行います。コードブロックの中には、"Contract1.pdf "がZIPファイルの中に存在するかどうかをチェックする "if "文があります。もし存在すれば、コンソールに "File Exist "と表示されます。 もっと簡単に言えば、このコードは特定のファイルがZIPファイルの中にあるかどうかを確認するのに役立ち、もしあればそれを知らせてくれる。

C#でZipアーカイブをディレクトリに抽出する方法: 図3 - ファイル存在の確認出力

既存のZIPファイルからエントリを削除する

IronZIPはZIPファイルからエントリーを削除するメソッドを提供します。以下のコードは既存のZIPからファイルを削除します。

using (var zipArchive = new IronZipArchive("Contracts.zip"))
{
    zipArchive.DeleteArchiveEntry("Contract1.pdf");
}
using (var zipArchive = new IronZipArchive("Contracts.zip"))
{
    zipArchive.DeleteArchiveEntry("Contract1.pdf");
}
Using zipArchive = New IronZipArchive("Contracts.zip")
	zipArchive.DeleteArchiveEntry("Contract1.pdf")
End Using
$vbLabelText   $csharpLabel

上記のコードは、IronZIPを使って "Contracts.zip "というZIPアーカイブからエントリーを削除する方法を示しています。usingブロックの中で、指定された "Contract1.pdf "というファイルがアーカイブから削除されます。この操作により、C# (シーシャープ)アプリケーションでZIPファイルを効率的に管理することができます。

結論

結論として、IronZIPはC#(シーシャープ)開発者にとって貴重なツールであり、様々な場面でZIPファイルの取り扱いを簡素化する。 ビジネスでの使用のためにファイルを抽出する場合。

チャクニット・ビン
ソフトウェアエンジニア
ChaknithはIronXLとIronBarcodeで作業しています。彼はC#と.NETに深い専門知識を持ち、ソフトウェアの改善と顧客サポートを支援しています。ユーザーとの対話から得た彼の洞察は、より良い製品、文書、および全体的な体験に貢献しています。
次へ >
フォルダー内のファイルをC#を使用して圧縮する方法