フッターコンテンツにスキップ
他のコンポーネントと比較する

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

ZipArchiveの紹介

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

この記事では、IronZipのコア機能とその機能がどのようにワークフローをより自動化し、効率を向上させ、誤りが発生しがちな手作業を排除できるかについて簡単に説明します。

フォルダまたはファイルから新しいzipファイルを作成する

以下は、複数のファイルを入力し、それらを1つのアーカイブに圧縮し、操作後にエクスポートする例です。 この記事のすべての例は、static void Main()メソッド内にカプセル化されています。重複するコードブロックを避けるためです。

using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Create an empty ZIP archive
        using (var archive = new IronZipArchive())
        {
            // Add files to the ZIP archive
            archive.Add("./assets/image1.jpg");
            archive.Add("./assets/image2.jpg");
            archive.Add("./assets/image3.jpg");

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

class Program
{
    static void Main(string[] args)
    {
        // Create an empty ZIP archive
        using (var archive = new IronZipArchive())
        {
            // Add files to the ZIP archive
            archive.Add("./assets/image1.jpg");
            archive.Add("./assets/image2.jpg");
            archive.Add("./assets/image3.jpg");

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

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Create an empty ZIP archive
		Using archive = New IronZipArchive()
			' Add files to the ZIP archive
			archive.Add("./assets/image1.jpg")
			archive.Add("./assets/image2.jpg")
			archive.Add("./assets/image3.jpg")

			' Export the ZIP archive to a file
			archive.SaveAs("output.zip")
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel
  1. まず、IronZipをインポートします。
  2. 次に、IronZipを使用してアーカイブを作成します。
  3. アーカイブに複数のファイルを追加するためにarchive.Add()を呼び出します。パス名は絶対パスでなければならないことを忘れずに、操作は対応するファイルを見つけられません。
  4. 最後に、archive.SaveAs()でzipアーカイブをoutput.zipとしてエクスポートします。

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

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

using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Open an existing ZIP archive
        using (var archive = IronZipArchive.FromFile("existing.zip"))
        {
            // Add additional files to the existing ZIP archive
            archive.Add("./assets/image3.png");
            archive.Add("./assets/image4.png");

            // Export the updated ZIP archive to a new file
            archive.SaveAs("result.zip");
        }
    }
}
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Open an existing ZIP archive
        using (var archive = IronZipArchive.FromFile("existing.zip"))
        {
            // Add additional files to the existing ZIP archive
            archive.Add("./assets/image3.png");
            archive.Add("./assets/image4.png");

            // Export the updated ZIP archive to a new file
            archive.SaveAs("result.zip");
        }
    }
}
Imports IronZip

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Open an existing ZIP archive
		Using archive = IronZipArchive.FromFile("existing.zip")
			' Add additional files to the existing ZIP archive
			archive.Add("./assets/image3.png")
			archive.Add("./assets/image4.png")

			' Export the updated ZIP archive to a new file
			archive.SaveAs("result.zip")
		End Using
	End Sub
End Class
$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;

class Program
{
    static void Main(string[] args)
    {
        // Extract the ZIP archive content to a specified directory
        IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted");
    }
}
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Extract the ZIP archive content to a specified directory
        IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted");
    }
}
Imports IronZip

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Extract the ZIP archive content to a specified directory
		IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted")
	End Sub
End Class
$vbLabelText   $csharpLabel

IronZipをインポートし、IronZipArchive.ExtractArchiveToDirectory()を呼び出します。 このメソッドは、既存のzipアーカイブの内容を指定されたターゲットディレクトリに抽出します。

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

using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Extract the protected ZIP archive content to a specified directory
        IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted", "P@ssw0rd");
    }
}
using IronZip;

class Program
{
    static void Main(string[] args)
    {
        // Extract the protected ZIP archive content to a specified directory
        IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted", "P@ssw0rd");
    }
}
Imports IronZip

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Extract the protected ZIP archive content to a specified directory
		IronZipArchive.ExtractArchiveToDirectory("output.zip", "extracted", "P@ssw0rd")
	End Sub
End Class
$vbLabelText   $csharpLabel

最終的に、別のパラメーターを渡します: 保護されたzipアーカイブ用のパスワードです。操作の残りは上記と同様です。

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

上記で説明したアーカイブの追加、抽出、作成のコード例は、zipアーカイブを扱う際によくあるものです。 ただし、他の形式の抽出やアーカイブ内容の単純な表示といった高度な利用の場合でも、IronZIPはそのニーズを満たし、さらなる機能を提供します。

IronZIPの高度な機能

  • クロス互換性: IronZIPは、.NET Core(3.1+)、Standard(2.0+)、.NET Framework(4.6.2+)を含む、さまざまな.NETバージョンと互換性があります。 このライブラリは、Web(Blazor)、モバイル(MAUI)、デスクトップ(WPF)、コンソールでも動作します。 これにより、開発者はプラットフォームおよびバージョンの制約を超えることができます。

  • アーカイブの生成: ZIP形式を超えて、IronZIPはTAR、GZIP、およびBZIP2アーカイブの作成をサポートしています。

  • アーカイブの抽出: 上記で示したように、単一のコードブロックを使用してIronZIPでアーカイブを抽出し、ファイルをデコンプレッションします。

  • ファイルとファイルシステムの追加: IronZIPは、画像、テキストファイル、PDF、DOCX、XLSXのようなドキュメントを追加したり、MP3やWAVのようなオーディオファイルを追加することで、Zipアーカイブの操作を支援します。さらには、全体のファイルシステムや個々のテキストファイルを< strong> ZipArchiveアーカイブ</ strong >に圧縮することもできます。

  • エクスポートと作成: AES128およびAES256標準でアーカイブにパスワードを設定することができます。 さらに、TAR、GZIP、およびBZIP2形式を生成してエクスポートすることができます。

  • カスタム圧縮レベル: IronZIPは、開発者が圧縮設定を調整して、アルゴリズムをニーズに合わせることができます。

  • アーカイブの編集: IronZIPを使用して、アーカイブ内のファイルエントリーを簡単に追加、抽出、削除することで、編集関連の操作に対する包括的なソリューションを提供します。

  • ファイルエントリープロパティ: IronZIPはオプションでアーカイブコメントを設定し、アーカイブ内のファイル名を抽出せずに取得する機能を提供し、それぞれのファイルに特定のコメントをつけられるようにします。

  • ライセンスの選択肢: IronZIPは、開発者が要求に最適なものを選択するための、ライセンスの選択肢を提供しており、無料トライアルバージョンも含まれています。

結論

圧縮ファイルやアーカイブを扱うことは、開発者が頻繁に直面する日々のタスクですが、それらの大量の管理はストレスがかかり、人的エラーを起こしがちです。 System.IO.Compressionのようなオプションがあるにも関わらず、IronZIPを使用することで、圧縮アーカイブを扱った場合に問題をより早く解決し、多くのことを達成できます。 この記事では、IronZIPの高度な機能と、zipアーカイブの作成、エントリの削除、ファイルの追加といった一般的な操作について説明しました。 IronZIPを使用してこれらのタスクをプログラムで実行する方法を理解することで、アーカイブの処理の効率性、スケーラビリティ、自動化が向上します。

ご注意System.IO.Compressionは、その各権利者の登録商標です。 このサイトは、System.IO.Compressionと提携していないし、System.IO.Compressionによって承認、支援を受けていません。 すべての製品名、ロゴ、およびブランドは各所有者の所有物です。 比較は情報提供のみを目的としており、執筆時点で公開されている情報を反映しています。

よくある質問

C#でフォルダーからZIPファイルを作成するにはどうすればいいですか?

C#でフォルダーからZIPファイルを作成するには、IronZipライブラリを使用します。まず、IronZipライブラリをインポートし、IronZipArchiveのインスタンスを作成し、archive.AddFolder()を使用してフォルダーを追加し、archive.SaveAs()で保存します。

C#でZIPアーカイブからデータを抽出するプロセスは何ですか?

C#でZIPアーカイブからデータを抽出するには、IronZipを使用してIronZipArchive.ExtractArchiveToDirectory()メソッドを呼び出します。このメソッドでは、コンテンツが抽出されるディレクトリを指定できます。

C#でプログラム的にZIPアーカイブの内容を更新するにはどうすればよいですか?

C#でプログラム的にZIPアーカイブの内容を更新するには、IronZipを使用して既存のアーカイブをIronZipArchive.FromFile()で読み込み、archive.Add()でファイルを追加し、またはarchive.Remove()でファイルを削除して、archive.SaveAs()で変更を保存します。

IronZipはパスワード保護されたZIPファイルを扱えますか?

はい、IronZipはパスワード保護されたZIPファイルを扱えます。ファイルを抽出する際に、IronZipArchive.ExtractArchiveToDirectory()メソッドで追加のパラメーターとしてパスワードを指定することができます。

ZIPファイル操作に関して、IronZipを使用することの利点はSystem.IO.Compressionと比べて何ですか?

IronZipは、複数のアーカイブ形式のサポート、パスワード保護、カスタム圧縮レベル、ファイルの抽出なしにアーカイブを編集する機能など、System.IO.Compressionよりも高度な機能を提供します。

IronZipは異なる.NETバージョンに対してどのようにクロス互換性を確保しますか?

IronZipは、複数の.NETバージョンをサポートすることで、さまざまなプラットフォームやフレームワークで実行されるアプリケーションにZIPファイル操作機能を統合できるようにして、クロス互換性を確保しています。

ZIPアーカイブを扱う上でIronZipが提供する高度な機能は何ですか?

{"1":"IronZip\u306f\u3001\u8907\u6570\u306e\u30a2\u30fc\u30ab\u30a4\u30d6\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\uff08ZIP\u3001TAR\u3001GZIP\u3001BZIP2\uff09\u306e\u751f\u6210\u3068\u62bd\u51fa\u3001\u30d1\u30b9\u30ef\u30fc\u30c9\u4fdd\u8b77\u3001\u30ab\u30b9\u30bf\u30e0\u5727\u7e2e\u30ec\u30d9\u30eb\u3001\u30d5\u30a1\u30a4\u30eb\u3092\u62bd\u51fa\u305b\u305a\u306b\u7de8\u96c6\u6a5f\u80fd\u3092\u5305\u62ec\u7684\u306b\u63d0\u4f9b\u3059\u308b\u9ad8\u5ea6\u306a\u6a5f\u80fd\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002<\/S>"}

IronZipを使用してZIPアーカイブ内のファイルのプロパティを管理することは可能ですか?

はい、IronZipはファイルの抽出を必要とせずに、ZIPアーカイブ内のコメントなどのファイルのプロパティを管理できます。これにより、アーカイブ管理の柔軟性と効率性が向上します。

C#でZIPファイルの作成と抽出を自動化する方法は何ですか?

IronZipを用いてC#でstatic void Main()メソッド内でZIPファイルの作成と抽出を自動化することができます。これにより、アーカイブへのファイル追加、データ抽出、既存アーカイブのプログラム的な更新などのプロセスを自動化できます。

IronZipは、ファイルシステム全体の処理に対応していますか?

はい、IronZipはファイルシステム全体を圧縮および抽出することをサポートしており、大量のデータを効率的に処理するのに適しています。

Curtis Chau
テクニカルライター

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

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