Create ZIP in C#

C#におけるZIPアーカイブの紹介

ZIPアーカイブは、ファイルやフォルダーを単一の管理可能なコンテナに圧縮および整理するために不可欠です。これにより、効率的なストレージと伝送のためにファイルサイズが削減されるだけでなく、メタデータが保持され、セキュリティを強化するために暗号化することもできます。この記事では、C#でプログラム的にZIPファイルを作成するためのさまざまな方法を探ります。ファイルやフォルダーの追加、パスワード保護されたアーカイブの作成、AES暗号化の適用方法について説明します。

学べること

この記事では、次のことを学びます:

C# ZIPライブラリ

**Aspose.ZIP for .NETライブラリは、.NETアプリケーション内でZIPファイル操作を処理するための強力なツールであり、ファイルやフォルダーを圧縮または解凍するのを容易にします。このライブラリは、C# .NET ZIPアーカイブ内の大きなファイルの処理に特に効果的で、セキュリティを強化するためのAES暗号化をサポートしています。このライブラリは、NuGetから簡単にインストールするか、Downloads**セクションからバイナリをダウンロードできます。

C#でZIPアーカイブを作成する

C#でプログラム的にZIPファイルを作成するには、次の手順を実行します:

  1. 出力ZIPアーカイブ用のFileStreamオブジェクトを作成します。
  2. ソースファイルを_FileStream_オブジェクトとして開きます。
  3. Archiveクラスをインスタンス化します。
  4. Archive.CreateEntry(string, FileStream)メソッドを使用してファイルをアーカイブに追加します。
  5. Archive.Save(FileStream)メソッドを使用してZIPアーカイブを保存します。

以下は、C#でZIPアーカイブにファイルを追加する方法を示すコードサンプルです:

C#で複数のファイルをZIPアーカイブに追加する

複数のファイルをZIPアーカイブに追加する必要がある場合、いくつかのアプローチがあります:

FileStreamを使用して複数のファイルを追加

この方法では、_FileStream_クラスを使用して、Archive.CreateEntry(String, FileStream)メソッドを介してZIPアーカイブにファイルを追加します。以下のように行います:

FileInfoを使用した複数のファイル

代わりに、FileInfoクラスを利用してファイルを読み込み、Archive.CreateEntry(String, FileInfo)メソッドでZIPアーカイブに追加できます。以下はコードサンプルです:

ファイルパスを使用

Archive.CreateEntry(String name, String path, Boolean openImmediately, ArchiveEntrySettings newEntrySettings)メソッドにファイルパスを直接提供することもできます。以下はその例です:

C#でフォルダーをZIPアーカイブに追加する

C#でフォルダーをZIPアーカイブに追加するには、次の手順を実行します:

  1. 出力ZIPアーカイブ用のFileStreamオブジェクトを作成します。
  2. Archiveクラスをインスタンス化します。
  3. DirectoryInfoクラスを使用して、圧縮したいフォルダーを指定します。
  4. Archive.CreateEntries(DirectoryInfo)メソッドを使用してフォルダーをZIPに追加します。
  5. Archive.Save(FileStream)メソッドを使用してZIPアーカイブを保存します。

以下は、ZIPファイルにフォルダーを追加する方法を示すコードサンプルです:

C#でZipCryptoを使用してパスワード保護されたZIPを作成する

ZIPアーカイブを保護するために、ZipCrypto暗号化を使用してパスワード保護を適用できます。これは、Archiveのコンストラクター内でArchiveEntrySettingsクラスを利用し、暗号化タイプをパラメータとして受け取ることによって実現されます。

以下は、C#でZipCryptoを使用してパスワード保護されたZIPアーカイブを作成する方法です:

AES暗号化を使用してパスワード保護されたZIPを作成する

Aspose.ZIP for .NETライブラリは、ZIPアーカイブを保護するためにAES暗号化もサポートしています。以下のAES暗号化メソッドから選択できます:

  • AES128
  • AES192
  • AES256

AES暗号化を適用するには、AesEcryptionSettingsクラスを使用します。以下は、C#でAES暗号化を使用してパスワード保護されたZIPを作成する方法を示すコードサンプルです:

並列圧縮モードを設定する

複数のエントリを効率的に処理するために、ParallelOptionsクラスを使用してAPIを並列圧縮用に構成できます。利用可能な並列圧縮モードは次のとおりです:

  • Never - 並列で圧縮しない。
  • Always - 並列で圧縮する(メモリの問題に注意)。
  • Auto - エントリに基づいて並列圧縮を使用するかどうかを自動的に決定する。

以下は、Aspose C# ZIPライブラリを使用して複数のファイルを圧縮する際に並列圧縮モードを設定する方法です:

C# .NET ZIPライブラリについてさらに学ぶ

C# .NET ZIPライブラリについての理解を深めるために、以下のリソースを参照してください:

オンラインZIP圧縮ツールを試す

Aspose.ZIP for .NETに基づく**無料のオンラインアプリケーション**を使用して、ZIPアーカイブにファイルを簡単に圧縮することもできます。

結論

この記事では、C#でプログラム的にZIPアーカイブを作成する方法を学びました。提供されたコードサンプルは、ZIPアーカイブにファイルやフォルダーを追加し、ZipCryptoおよびAES暗号化メソッドを使用してパスワード保護されたZIPファイルを作成し、並列圧縮を構成する方法を示しています。質問がある場合やさらなる支援が必要な場合は、ぜひ**フォーラム**にお問い合わせください。

関連情報

C#を使用してファイルを解凍または抽出するC#を使用してZIPアーカイブ内のファイルを解凍するC# .NETで7z(7-Zip)アーカイブを作成する
C# .NETで7z(7zip)ファイルを開くまたは抽出するC#を使用してGZipアーカイブを作成および抽出するC#でRARファイルをZIPアーカイブに変換する
C#でZIPアーカイブをTARに変換するC#でフラットZIPアーカイブを作成するC#で実行可能な自己解凍アーカイブを作成する
C#でTAR.GZおよびTAR.XZファイルを作成するC#でZIPアーカイブ内のファイルを削除するC#でネストされたZIPアーカイブを抽出する
C#で複数のZIPまたはTARアーカイブをマージするZIPファイルを作成する方法7zをオンラインで抽出する

キーワード: C# .NET ZIPアーカイブのプログラム的作成、C# .NET Core ZIPファイルの処理、C# .NET 6でZIPアーカイブにファイルを追加、C# .NETを使用したZIPアーカイブへのフォルダーの追加、C#からディレクトリをプログラム的にZIPファイルを作成、C# .NET ZIPファイルのパスワード保護による圧縮、.NET ZIPファイルの暗号化と復号化のプログラム的処理、大きなファイル向けのC# .NETでの効率的なZIPファイル作成、C# .NET ZIPアーカイブにおける大きなファイルの処理、C# .NET ZIPアーカイブのエラー処理とベストプラクティス、Aspose .NET ZIPライブラリのプログラム的ファイル追加、Aspose .NET ZIPライブラリの大きなファイル向けのパフォーマンス、Aspose .NET ZIPライブラリ:フォルダーとファイルをプログラム的に追加、C# .NETのプログラム的ZIPファイル更新、.NET ZIPアーカイブ:複数のフォルダーとファイルを追加、C# .NET非同期ZIPファイル作成、.NET FrameworkのZIPファイルのプログラム的作成、.NET CoreのZIPアーカイブのプログラム的作成、.NET ZIPファイル操作の例:追加、削除、更新、C# .NET Core 3.1におけるプログラム的ZIPファイル処理、C# .NET 5におけるプログラム的ZIPファイル処理、C# .NET 7におけるプログラム的ZIPファイル処理、C# .NET ZIPアーカイブ:ディレクトリ構造の保持、C# .NET ZIPファイルAPI:追加、削除、抽出、C# .NETで自己解凍ZIPファイルを作成、.NET ZIP圧縮ライブラリ:ベストプラクティスと最適化、C# .NETの複数のソースからZIPファイルを作成、C# ZIPフォルダーにサブディレクトリを追加、.NETプログラム的ZIPファイル処理:高度な技術、C# .NETの大きなファイル向けZIPライブラリの推奨、効率的なC# .NETの大規模データセット向けZIPファイル作成、.NET ZIPファイル作成の進捗報告、C# .NET ZIPアーカイブ:プログラム的にファイルとフォルダーを追加、.NET 6 ZIPファイル処理:効率的なファイル処理、C# .NET ZIPアーカイブ:セキュリティのベストプラクティス、.NET ZIPファイルAPI:高度な使用法と機能、C# ZIPアーカイブにカスタム圧縮でディレクトリを追加。