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

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 を使用してアーカイブを作成しますが、今回は既存の zip ファイルを`IronZipArchive.FromFile()`を使ってインポートします。

  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 (8.7、6.5、3.1+)、Standard (2.0+)、.NET Framework (4.6.2+) を含む、幅広い .NET バージョンと互換性があります。 ライブラリは、Web(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 は柔軟なライセンスの選択肢を提供し、無料の試用版も含まれており、開発者が自分の要件に最適なものを選択できるようにしています。

結論

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

リーガン・パン
ソフトウェアエンジニア
レーガンはリーディング大学で電子工学の学士号を取得しました。Iron Softwareに入社する前の仕事では、一つのタスクに集中して取り組んでいました。Iron Softwareでは、営業、技術サポート、製品開発、マーケティングのいずれにおいても広範な業務に携わることが最も楽しいと感じています。彼は、Iron Softwareライブラリを開発者がどのように使用しているかを理解し、その知識を使ってドキュメントを継続的に改善し、製品を開発することを楽しんでいます。
< 以前
IronXLとGemBox.Spreadsheetの比較
次へ >
EPPlus ExcelからDatatableを読み込むC#(IronXLチュートリアル)