.NET Coreでファイルを解凍する方法
1. はじめに
"アンジップ"は、ZIPアーカイブからファイルやフォルダを取り出して解凍するプロセスを指します。 "アンジップ"とは、ZIPファイルに圧縮されたファイルやディレクトリを元の状態に復元し、再度アクセス・使用できるようにするプロセスを指します。 画像、TXTファイルなど、さまざまな種類のファイルをZIPファイルに追加できます。
ユーザーは、圧縮プロセスを逆にするアンジップによってZIPアーカイブの内容を取得できます。 より効率的な送信、保存、または共有のために一緒にパックされた個々のファイルやフォルダにアクセスすることは、一般的な使用法です。 "アンジップ"手順が完了すると、ファイルは元の構造に戻り、ユーザーが必要に応じて読み取り、変更、または使用できるようになります。 この記事では、IronZIPアーカイブライブラリを使用してAsp.net coreでファイルをアンジップします。
2. Asp.net Coreでのアンジップファイルの概要
- 新しいAsp.net Coreプロジェクトを作成します。
- IronZIPライブラリを作成したプロジェクトにインストールします。
- ファイルを解凍するには、
IronArchiveクラスをインスタンス化します。 - ZIP ファイルは、
ExtractArchiveToDirectory関数を使用して解凍できます。 - アンジップファイルを抽出する必要があるターゲットファイルを指定します。
3. IronZIPライブラリ
Iron Softwareは、.NETアプリケーションでのZIPファイルの処理と管理を容易にする.NETライブラリIronZIPを作成しました。 それはプログラマーにツールと機能を提供し、さまざまな方法でZIPと対話できるようにします。 これには、ZIPファイル内でのファイルおよびディレクトリの生成、抽出、圧縮、解凍、暗号化、変更が含まれます。
3.1 IronZIPの機能
- ZIPファイルの作成: .NETアプリで最初から新しいZIPアーカイブを作成する能力。
- 抽出と解凍: 既存のZIPパッケージからファイルとディレクトリを削除し、コンテンツをアンジップする機能。
- 圧縮: 送信または保存のためにファイルとフォルダをZIPアーカイブに縮小するためのツールを提供します。
- パスワード保護と暗号化: ZIPアーカイブの内容を保護するために、パスワード保護を適用しZIPファイルを暗号化する機能を提供します。
- ファイル操作: プログラマーがZIPパッケージ内のファイルとディレクトリを追加、削除、更新、またはそれ以外に操作することを可能にします。
- 互換性: 様々な.NET環境で機能するように設計され、フレームワークの複数のイテレーションと互換性があります。
- パフォーマンスの最適化: .NETプログラムが大きなZIPファイルやデータセットをより効率的に管理できるように、スピードを最大化することを目指しています。
開発者は、アプリケーションのZIPファイルを管理する際にIronZIPを役立つツールと見なすかもしれません。 .NETフレームワーク内で、ZIPアーカイブをプログラム的に操作するための様々な機能を提供し、簡潔さと多目的性を提供します。
機能、能力、互換性、および最新バージョンで追加された新しい機能の詳細については、公式ドキュメント、リリースノート、またはIronZIPのウェブサイトを参照してください。詳細を知るには、ここをクリックしてください。
3.2 Visual Studioで新しいプロジェクトを作成する
Visual Studioプログラムを起動した後、ファイルオプションを選択します。 "新しいプロジェクト"を選択し、次に"Asp.Net core Web App"を選択します。
該当するテキストボックスにプロジェクト名を入力し、ファイルの場所を選択します。 次に、作成ボタンをクリックして必要な.NETフレームワークバージョンを選択します。
選択したアプリケーションの構造がVisual Studioプロジェクトによって生成されます。 この場合、ASP.NET MVCが使用されています。 したがって、コードを追加してアプリケーションを作成/実行することができる既存のコントローラーを利用するか、新しいコントローラーを作成する2つのオプションがあります。
次にライブラリを追加し、コードをテストすることができます。
4. IronZIPパッケージのダウンロード
4.1 Visual Studioを使用する
Visual StudioのNuGetパッケージマネージャ機能を使用して、直接ソリューションにパッケージをインストールできます。 以下のスナップショットを使用してNuGetパッケージマネージャにアクセスできます。

検索ボックスが提供されてNuGetウェブサイトのパッケージリストが表示されます。下のスクリーンショットは、パッケージマネージャで"IronZIP"を探す場所を示しています。

上記の画像には関連する検索用語のリストが表示されています。 解決策パッケージをインストールするには、必要なオプションを選択する必要があります。
4.2 Visual Studioコマンドラインを使用する
Visual Studioで、ツール > NuGetパッケージマネージャを選択してパッケージマネージャコンソールを表示します。
次の行をパッケージマネージャのターミナルタブに入力します:
Install-Package IronZip
アクティブなプロジェクトにダウンロードしてインストールされた後、パッケージは使用できる状態になります。
4.3 NuGetウェブサイトから直接ダウンロード
3つ目の方法では、NuGetパッケージをウェブサイトから直接入手できます。
リンクを開くためにそこにナビゲートします。
メニューからダウンロードパッケージの選択をします。
ダウンロードした後にパッケージをダブルクリックします。 それ自体でインストールされます。
もう一度、ソリューションをロードし、プロジェクトでの使用を開始します。
4.4 IronZIPウェブサイトから直接ダウンロード
ウェブサイトから最新パッケージを直接取得するためにこのリンクをクリックしてください。ダウンロードしたら、プロジェクトにパッケージを追加するための手順に従います。
- ソリューションウィンドウからプロジェクトを右クリックで選択します。
- 参照を選択し、ダウンロード済みの場所を参照します。
- その後、OKをクリックして参照を追加します。
4.5 Asp.net coreでファイルをアンジップ
C#でIronZIPを使用してZIPアーカイブから特定のファイルを抽出するには、ファイル名と抽出したい宛先を指定する必要があります。
ここにコードサンプルがあります:
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using IronZip;
namespace IronPDF_WebApp.Pages
{
public class IndexModel : PageModel
{
private readonly ILogger<IndexModel> _logger;
public IndexModel(ILogger<IndexModel> logger)
{
_logger = logger;
}
public IActionResult OnPost()
{
try
{
// Retrieve the uploaded file from the form
var file = Request.Form.Files[0];
// Set the file path where the file will be saved
string filepath = @"C:\temp\uploads\";
// Save the uploaded file to the specified filepath
using (var stream = new FileStream(filepath + file.FileName, FileMode.Create))
{
file.CopyToAsync(stream);
}
// Extract the ZIP archive to the specified directory
string extractfile = @"C:\temp\extracted";
IronZipArchive.ExtractArchiveToDirectory(filepath + file.FileName, extractfile);
}
catch (Exception ex)
{
// Handle exception and redirect to Error page
_logger.LogError(ex, "An error occurred while extracting the ZIP file.");
return RedirectToAction("Error");
}
return RedirectToAction("Get");
}
}
}
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using IronZip;
namespace IronPDF_WebApp.Pages
{
public class IndexModel : PageModel
{
private readonly ILogger<IndexModel> _logger;
public IndexModel(ILogger<IndexModel> logger)
{
_logger = logger;
}
public IActionResult OnPost()
{
try
{
// Retrieve the uploaded file from the form
var file = Request.Form.Files[0];
// Set the file path where the file will be saved
string filepath = @"C:\temp\uploads\";
// Save the uploaded file to the specified filepath
using (var stream = new FileStream(filepath + file.FileName, FileMode.Create))
{
file.CopyToAsync(stream);
}
// Extract the ZIP archive to the specified directory
string extractfile = @"C:\temp\extracted";
IronZipArchive.ExtractArchiveToDirectory(filepath + file.FileName, extractfile);
}
catch (Exception ex)
{
// Handle exception and redirect to Error page
_logger.LogError(ex, "An error occurred while extracting the ZIP file.");
return RedirectToAction("Error");
}
return RedirectToAction("Get");
}
}
}
Imports Microsoft.AspNetCore.Mvc
Imports Microsoft.AspNetCore.Mvc.RazorPages
Imports IronZip
Namespace IronPDF_WebApp.Pages
Public Class IndexModel
Inherits PageModel
Private ReadOnly _logger As ILogger(Of IndexModel)
Public Sub New(ByVal logger As ILogger(Of IndexModel))
_logger = logger
End Sub
Public Function OnPost() As IActionResult
Try
' Retrieve the uploaded file from the form
Dim file = Request.Form.Files(0)
' Set the file path where the file will be saved
Dim filepath As String = "C:\temp\uploads\"
' Save the uploaded file to the specified filepath
Using stream = New FileStream(filepath & file.FileName, FileMode.Create)
file.CopyToAsync(stream)
End Using
' Extract the ZIP archive to the specified directory
Dim extractfile As String = "C:\temp\extracted"
IronZipArchive.ExtractArchiveToDirectory(filepath & file.FileName, extractfile)
Catch ex As Exception
' Handle exception and redirect to Error page
_logger.LogError(ex, "An error occurred while extracting the ZIP file.")
Return RedirectToAction("Error")
End Try
Return RedirectToAction("Get")
End Function
End Class
End Namespace
上記のコードでは、IronZIP名前空間がインポートされていることを確認してください。 IronZIP の IronZipArchive クラスには、ExtractArchiveToDirectory 関数が含まれています。 これにより、2つのパラメータを渡すことができます:ソースファイルシステムとアンジップするファイルのパス。 ZIPArchive zip ファイルには任意の数の内容を含めることができ、それを使用して内容を抽出して、ファイルで指定されたディレクトリに保存することができます。 単一の ZIP ファイルの内容の抽出ポイントとして使用されるディレクトリ パスは、ExtractArchiveToDirectory メソッドで必要とされる唯一のパラメータです。
この関数は内部でZIPパッケージ内のすべてのファイルとディレクトリをループして、指定されたディレクトリにすべてのファイルを抽出します。 ZIPファイルがない場合や抽出プロセスで問題が発生した場合などの例外が発生したときは、慎重に取り扱うようにしてください。 try-catchブロックを使用して例外をキャッチし、処理することができます。 大量抽出作業においては、ExtractArchiveToDirectory メソッドを使用すると、ZIP アーカイブ内のすべてのファイルとディレクトリの抽出を管理できるため、抽出が容易になります。ZIP ファイルは、 IronZIP拡張機能を使用して作成できます。
IronZIPライブラリについてさらに読みたい場合は、こちらをクリックしてください。
5. 結論
開発者は、C#アプリケーションでのZIPファイルを管理するために設計された.NETライブラリであるIronZIPを使用して、ZIPファイルの圧縮、抽出、操作を処理できます。 IronZIPは、直感的なAPIを使用して複雑なプロセスを簡素化し、特定のファイルの抽出、大量のファイルの抽出、エントリの追加、既存のアーカイブの変更などのファイル操作を容易にします。
このライブラリを使用することで、開発者は最初からやり直すことなくC#プロジェクトでファイル管理機能を向上させることができます。 それは簡単に統合されます。 その多様性のおかげで、ZIPコンテンツは動的に変更され、ファイルが追加、変更または削除されてさまざまなアプリケーション要件に合わせることができます。
ZIPファイルの欠落や損傷などの状況に対処する際、IronZIPの強力な例外処理機能は一貫したワークフローを保証し、エラーの修復を容易にします。 IronZIPは、.NET環境でのZIPファイル管理に信頼のおけるソリューションを提供してきましたが、私の理解は最新のアップグレードを反映しないかもしれません。 IronZIPの価格は$799からで、無料の開発者版が付属しています。 ライセンスについて詳しく知るには、こちらを参照してください。 Iron software製品については、こちらをチェックしてください。
よくある質問
ASP.NET Core でファイルを解凍するにはどうすればよいですか?
IronZIP ライブラリを使用することで、ASP.NET Core でファイルを解凍できます。最初に Visual Studio の NuGet パッケージマネージャーを介して IronZIP をインストールし、次に IronArchive クラスと ExtractArchiveToDirectory メソッドを使用して ZIP アーカイブから指定ディレクトリにファイルを抽出します。
ZIP ファイルを扱う際の IronZIP の主な機能は何ですか?
IronZIP は、ZIP ファイルの作成、抽出、圧縮、暗号化、操作を含む複数の機能を提供します。パスワード保護をサポートし、さまざまな .NET Frameworkと互換性があり、パフォーマンスを最適化しています。
C# プロジェクトに IronZIP をインストールするにはどうすればよいですか?
C# プロジェクトに IronZIP をインストールするには、Visual Studio の NuGet パッケージマネージャーを使用します。「IronZIP」を検索してインストールします。あるいは、パッケージマネージャーコンソールで Install-Package IronZIP コマンドを使用します。
IronZIP は ZIP ファイルを暗号化できますか?
はい、IronZIP は ZIP ファイルを暗号化できます。パスワード保護と暗号化のためのツールを含み、ZIP アーカイブ内のコンテンツのセキュリティを確保します。
ASP.NET Core での ZIP ファイル抽出中にエラーが発生した場合、どうすればよいですか?
ZIP ファイル抽出中にエラーが発生した場合は、IronZIP の例外処理機能を使用してください。try-catch ブロックを実装して、ZIP ファイルの不足や破損などの例外を処理します。
開発者向けの無料版の IronZIP はありますか?
はい、IronZIP には、機能を初期コストなしで探索できる無料の開発者版があります。有料ライセンスも提供しています。
なぜ私の ASP.NET Core プロジェクトで ZIP ファイルを管理するために IronZIP を使用すべきですか?
IronZIP は、ZIP アーカイブの作成、抽出、変更のための直感的な API を提供し、ファイル管理機能を強化することで、ASP.NET Core プロジェクトでの ZIP ファイル管理を簡素化します。
IronZIP は ZIP ファイルの抽出をどのように扱いますか?
IronZIP は、ExtractArchiveToDirectory メソッドを使用して、ZIP アーカイブからすべてのファイルとディレクトリを指定されたディレクトリパスに抽出し、ZIP パッケージ内の各要素を効率的に管理します。
IronZIP を使用するための新しい ASP.NET Core プロジェクトを作成するプロセスは何ですか?
IronZIP を使用するための新しい ASP.NET Core プロジェクトを作成するには、Visual Studio で新しいプロジェクトを設定し、NuGet 経由で IronZIP をインストールし、IronArchive クラスを実装して ExtractArchiveToDirectory などのメソッドを使用して ZIP ファイルを管理します。




