他のコンポーネントと比較

IronXLを使用したC#開発者のためのZipアーカイブチュートリアル

公開済み 2025年2月5日
共有:

ZipArchiveの紹介

ファイルを圧縮形式で送信しようと考えるとき、最初に思い浮かぶのは通常Zipアーカイブです。Zipアーカイブは、単一のファイルやコレクション全体を1つのアーカイブに圧縮してパックするための一般的な形式です。しかし、大量のファイルをzipする場合、それらを1つ1つアーカイブしてフォーマットしなければならないため、作業が面倒になることがあります。 しかし、それはそのようである必要はありません。 大規模なタスクは、プログラム的に自動化する必要があります。 直感的なライブラリであるIronZIPを使用することで、それ以上のことも実現できます。

この記事では、IronZIPの主要な機能と機能について簡単に説明し、ワークフローの自動化を効率化し、エラーの起こりやすい手作業を排除するのにどのように役立つかを解説します。

フォルダやファイルから新しいZIPファイルを作成する

以下は5つのファイルを取り込み、それらを1つのアーカイブに圧縮し、操作後にエクスポートする例です。 この記事のすべての例は、コードの重複を避けるためにstatic void mainで囲まれています。

using IronZip;

// Create an empty ZIP
using (var archive = new IronZipArchive())
{
    // Add files to the ZIP
    archive.Add("./assets/image1.jpg");
    archive.Add("./assets/image2.jpg");
    archive.Add("./assets/image3.jpg");

    // Export the ZIP
    archive.SaveAs("output.zip");
}
using IronZip;

// Create an empty ZIP
using (var archive = new IronZipArchive())
{
    // Add files to the ZIP
    archive.Add("./assets/image1.jpg");
    archive.Add("./assets/image2.jpg");
    archive.Add("./assets/image3.jpg");

    // Export the ZIP
    archive.SaveAs("output.zip");
}
Imports IronZip

' Create an empty ZIP
Using archive = New IronZipArchive()
	' Add files to the ZIP
	archive.Add("./assets/image1.jpg")
	archive.Add("./assets/image2.jpg")
	archive.Add("./assets/image3.jpg")

	' Export the ZIP
	archive.SaveAs("output.zip")
End Using
$vbLabelText   $csharpLabel
  1. まず、IronZIPをインポートします。

  2. 次に、IronZIPを使用してアーカイブを作成します。

  3. 次に、`archive.add` を呼び出します。()` を使用して、複数のファイルをアーカイブに追加します。パス名を渡す際には絶対パスでなければならず、そうでないと対応するファイルを見つけられずに操作が失敗しますので注意してください。

  4. 最後に、archive.SaveAsを呼び出します。()そして ZIP アーカイブを `output.zip` としてエクスポートします。

既存のzipファイルを新しいファイルや変更で更新する

別の例を見てみましょう。 今回は、IronZIP の機能を紹介するために、既存のZIPアーカイブを新しいファイルで編集します。

using IronZip;

// Open an existing ZIP
using (var archive = IronZipArchive.FromFile("existing.zip"))
{
    // Add files
    archive.Add("./assets/image3.png");
    archive.Add("./assets/image4.png");

    // Export the ZIP
    archive.SaveAs("result.zip");
}
using IronZip;

// Open an existing ZIP
using (var archive = IronZipArchive.FromFile("existing.zip"))
{
    // Add files
    archive.Add("./assets/image3.png");
    archive.Add("./assets/image4.png");

    // Export the ZIP
    archive.SaveAs("result.zip");
}
Imports IronZip

' Open an existing ZIP
Using archive = IronZipArchive.FromFile("existing.zip")
	' Add files
	archive.Add("./assets/image3.png")
	archive.Add("./assets/image4.png")

	' Export the ZIP
	archive.SaveAs("result.zip")
End Using
$vbLabelText   $csharpLabel
  1. まず、IronZIPをインポートします。

  2. 次に、IronZIPを使用してアーカイブを作成しますが、今回は IronZipArchive.FromFile を使って既存のZIPファイルをインポートします。()`.

  3. 次に、`archive.add` を呼び出します。()アーカイブに追加したいファイルを追加します。パス名を指定する場合、絶対パスでなければ操作が既存のファイルを見つけることができません。このステップを、単一ファイル用に可変文字列ファイル名で分けることで、より読みやすくすることもできます。

  4. 最後に、archive.SaveAsを呼び出します。()`およびzipアーカイブを`result.zip`としてエクスポートします。`

    上記のコードからわかるように、操作とフォーマットは、Zipファイルを作成してファイルを追加する際に使用されるものと似ています。主な違いは、代わりにzipファイルをインポートすることにあり、IronZIPのシンプルで直感的な機能を示しています。

Zipアーカイブからファイルを抽出する

上記の例のように、IronZIPを使用してZipアーカイブやZipパッケージからファイルを抽出することもできます。 別の例でそれを確認してみましょう。

using IronZip;

// Extract ZIP
IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted");
using IronZip;

// Extract ZIP
IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted");
Imports IronZip

' Extract ZIP
IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted")
$vbLabelText   $csharpLabel

私たちはIronZipをインポートし、`IronZipArchive.ExtractArchieveToDirectory`を呼び出します。 このメソッドはまさにラベルに記載されている通りの処理を行い、既存のZIPアーカイブの内容を指定されたディレクトリに抽出するだけです。

さらに、パスワードで保護されたZIPアーカイブを扱う必要がある場合、別の方法を使用してアーカイブを抽出することもできます。

using IronZip;
using IronZip.Enum;

// Extract protected ZIP
IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted", "P@ssw0rd");
using IronZip;
using IronZip.Enum;

// Extract protected ZIP
IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted", "P@ssw0rd");
Imports IronZip
Imports IronZip.Enum

' Extract protected ZIP
IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted", "P@ssw0rd")
$vbLabelText   $csharpLabel

最終的に、別のパラメーター、保護されたzipアーカイブのパスワードを渡します。それ以外の操作は上記のコードと同じです。

高度なトピックとベストプラクティス

Zipアーカイブを扱う際、上記のような追加、抽出、作成のコード例が最も一般的です。 しかし、他のフォーマットを抽出する場合やアーカイブのコンテキストを単に表示するなど、より高度な使用が必要な場合には、IronZIPが対応し、それ以上の機能も備えています。

IronZIPの高度な機能

  • クロス互換性: IronZIP は、.NET Core を含む幅広い .NET バージョンと互換性があります。(8.7, 6.5, and 3.1+)、標準(2.0以上)、および .NET Framework(4.6.2+). このライブラリはウェブ上でも動作します。(Blazor)モバイル(MAUI)デスクトップ(WPF)、そしてコンソール。 これにより、開発者はプラットフォームやバージョンの制限を真に超越することができます。
  • アーカイブの生成: 上記の例は主にZIPアーカイブ形式に焦点を当てています; しかし、IronZIPはTAR、GZIP、BZIP2とも連携します。
  • アーカイブの抽出: 上記のように、IronZIPを使用して1つのコードブロックでアーカイブを抽出し、ファイルを解凍できます。
  • ファイルとファイルシステムの追加: IronZipは、画像、テキストファイル、PDFやDOCX、XLSXなどの文書、MP3やWAVなどの音声を追加してzipアーカイブを最大限に操作することを支援します。圧縮済みのファイルシステム全体や圧縮されたテキストファイルを追加して、ZipArchiveアーカイブを作成することもできます。
  • エクスポートと作成: 必要不可欠なZipアーカイブを作成することに加えて、従来の標準またはAES128およびAES256標準でパスワード保護が可能です。 上述のTAR、GZIP、およびBZIP2などの形式を生成してエクスポートすることもできます。
  • カスタム圧縮レベル: IronZIPはカスタム圧縮ファイルを提供しており、開発者が圧縮アルゴリズムの設定を変更してニーズに合わせて調整することができます。
  • アーカイブの編集 : IronZIP を使用して、ファイルエントリの追加、アーカイブの抽出、ファイルエントリの削除を簡単に行うことができ、これによりアーカイブ編集に関連するすべての操作のためのワンストップソリューションが提供されます。
  • ファイルエントリープロパティ: IronZip は、オプションのアーカイブコメントを設定し、アーカイブ内のファイルを抽出せずにファイル名を取得することができ、各ファイルに指定されたコメントを残すのに役立ちます。
  • ライセンスの選択肢: IronZIP は適応可能なLicensing Options、無料のトライアルバージョンを含む、開発者が自分の要件に最適なものを選択できるようにします。

結論

ファイルとアーカイブの圧縮処理は、開発者が日常的に行う作業ですが、それらの大量の処理はストレスを増し、人為的なエラーを引き起こす可能性があります。 System.IO.Compressionのようなオプションはありますが、IronZIPを使用することで、圧縮ファイルを扱う際に迅速に問題を解決し、より多くのことを達成することができます。 この記事の中で、IronZIPの高度な機能と、zipアーカイブを作成する、zipアーカイブ内の項目を削除する、またはファイルを追加するなど、日常のシナリオで一般的に発生する基本的な操作について簡単に説明します。 IronZIPを使用してプログラム的に操作する方法を理解することは、アーカイブに関連するすべてのタスクを自動化し、効率とスケーラビリティを向上させます。

Kannaopat Udonpant

カンナパット・ウドンパント

ソフトウェアエンジニア

 LinkedIn

ソフトウェアエンジニアになる前に、カンナパットは日本の北海道大学から環境資源学の博士号を取得しました。学位を取得する過程で、カンナパットはバイオプロダクション工学部に所属する車両ロボティクス研究所のメンバーにもなりました。2022年には、C#のスキルを活かしてIron Softwareのエンジニアリングチームに参加し、IronPDFに注力しています。カンナパットは、IronPDFで使用されているコードの大部分を作成した開発者から直接学べることに価値を見いだしています。同僚との学び合いに加えて、Iron Softwareで働くことの社会的側面も楽しんでいます。コードやドキュメントを書いていない時には、カンナパットは通常、PS5でゲームをしたり、『The Last of Us』を再視聴したりしています。
< 以前
IronXLとGemBox.Spreadsheetの比較
次へ >
EPPlus ExcelからDatatableを読み込むC#(IronXLチュートリアル)