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

.NET Coreでファイルを解凍する方法

1. はじめに

「アンジップ」は、ZIPアーカイブからファイルやフォルダを取り出して解凍するプロセスを指します。 "Unzip" refers to the process of recovering compressed files or directories back to their original condition, so that they can be accessed and used again after being compressed into a ZIP file. 画像、TXTファイルなど、さまざまな種類のファイルをZIPファイルに追加できます。

ユーザーは、圧縮プロセスを逆にするアンジップによってZIPアーカイブの内容を取得できます。 より効率的な送信、保存、または共有のために一緒にパックされた個々のファイルやフォルダにアクセスすることは、一般的な使用法です。 「アンジップ」手順が完了すると、ファイルは元の構造に戻り、ユーザーが必要に応じて読み取り、変更、または使用できるようになります。 この記事では、IronZIPアーカイブライブラリを使用してAsp.net coreでファイルをアンジップします。

2. Asp.net Coreでのアンジップファイルの概要

  1. 新しいAsp.net Coreプロジェクトを作成します。
  2. IronZIPライブラリを作成したプロジェクトにインストールします。
  3. ファイルをアンジップするには、IronArchiveクラスをインスタンス化します。
  4. ZIPファイルはExtractArchiveToDirectory関数を使用して抽出できます。
  5. アンジップファイルを抽出する必要があるターゲットファイルを指定します。

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パッケージマネージャにアクセスできます。

.NET Coreでファイルをアンジップする方法:図1 - NuGetパッケージマネージャへのアクセス方法

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

.NET Coreでファイルをアンジップする方法:図2 - 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
$vbLabelText   $csharpLabel

上記のコードでは、IronZIP名前空間がインポートされていることを確認してください。 IronZIPのIronZipArchiveクラスに含まれるのは、ExtractArchiveToDirectory関数です。 これにより、2つのパラメータを渡すことができます:ソースファイルシステムとアンジップするファイルのパス。 ZIPArchive zipファイルは任意の数の内容を持つことができ、内容はそれを使用して抽出および保存先のディレクトリに保存されます。 単一のZIPファイルの内容の抽出ポイントとして使用されるディレクトリパスは、ExtractArchiveToDirectoryメソッドが必要とする唯一のパラメーターです。

この関数は内部でZIPパッケージ内のすべてのファイルとディレクトリをループして、指定されたディレクトリにすべてのファイルを抽出します。 ZIPファイルがない場合や抽出プロセスで問題が発生した場合などの例外が発生したときは、慎重に取り扱うようにしてください。 try-catchブロックを使用して例外をキャッチし、処理することができます。 マス抽出活動のために、ExtractArchiveToDirectoryメソッドはZIPアーカイブ内のすべてのファイルとディレクトリの抽出を管理することで抽出を容易にします。IronZIPの拡張メソッドを使用してZIPファイルを作成できます。

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 フレームワークと互換性があり、パフォーマンスを最適化しています。

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 ファイルを管理します。

Curtis Chau
テクニカルライター

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

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