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

ZIPアーカイブC#(開発者チュートリアル)

更新済み 10月 30, 2023
共有:

ZIPアーカイブは、1つのファイルや複数ファイルのコレクション全体を単一のZIPパッケージコンテナやZIPファイルに圧縮し、パッケージ化するための一般的な形式です。C#では、System.IO.Compression名前空間を使用してZIPアーカイブを簡単に操作することができます。この名前空間には、ZipArchiveやZipFileのようなクラスが提供されており、ZIPファイルに対してさまざまな操作を実行することができます。 このチュートリアルでは、C#で相対パスを使用してZIPファイルを作成し、圧縮ファイルからデータを抽出し、ZIPアーカイブを操作する方法を探ります。

前提条件

  1. C#プログラミングの基本的な理解。

  2. Visual Studioや任意のC#開発環境。

ステップ1:新しいC#プロジェクトを作成する

C#の開発環境を開き、Zipアーカイブおよび圧縮テキストファイル機能を実装するために、新しいC#プロジェクトを作成します。ZipArchive archive = new ZipArchive()`. ご利用のケースに応じて、コンソール アプリケーションまたはその他の適切なプロジェクト タイプを選択できます。

ステップ 2: C#でフォルダからZipアーカイブを作成する

次のディレクトリから新しいZipアーカイブを簡単に作成することができます: ZipFile.CreateFromDirectory()以下の例に示すように、` メソッドを使用します。

static void Main(string [] args)
{
ZipFile.CreateFromDirectory(@"D:\Certificate", @"D:\Certificate.zip", CompressionLevel.SmallestSize, true);
}
static void Main(string [] args)
{
ZipFile.CreateFromDirectory(@"D:\Certificate", @"D:\Certificate.zip", CompressionLevel.SmallestSize, true);
}
Shared Sub Main(ByVal args() As String)
ZipFile.CreateFromDirectory("D:\Certificate", "D:\Certificate.zip", CompressionLevel.SmallestSize, True)
End Sub
VB   C#

最初のパラメータ @"D:\Certificate" は圧縮するソースディレクトリを指定し、二番目のパラメータ @"D:\Certificate.zip" は結果として生成されるZIPアーカイブの場所と名前を指定します。三番目のパラメータ CompressionLevel.SmallestSize は圧縮レベルを決定します。SmallestSize は、バイナリデータの圧縮に時間がかかる可能性があるものの、最小のファイルサイズを示します。 第4パラメータであるtrueは、ZIPアーカイブ内でディレクトリ構造とファイルシステムを保持するかどうかを指定し、フォルダの構造が維持されることを保証します。

ステップ3: C#でZipアーカイブを更新する

以下の例では、C#で既存のZIPアーカイブを操作するプロセスを説明します。 具体的には、ZipArchive archive=zipfile.openreadを使用して既に作成されたZIPパッケージを開き、その内容を変更し、新しいファイルおよび既存のファイルを追加する方法を探ります。

 using (FileStream zipToOpen = new FileStream(@"D:\Invoices.zip", FileMode.Open))
 {
//var archive= new ZipArchive
     using (ZipArchive archive = new ZipArchive(zipToOpen, ZipArchiveMode.Update))
     {
         archive.CreateEntryFromFile(@"D:/Invoice.pdf", "Invoices/myInvoice.pdf");
         ZipArchiveEntry entry = archive.CreateEntry("Readme.txt");
//using StreamWriter writer=new StreamWriter
         using (StreamWriter writer = new StreamWriter(entry.Open()))
         {
            writer.WriteLine("This folder contains the file compressed using C#");
            writer.WriteLine("========================");
         }
     }
 }
 using (FileStream zipToOpen = new FileStream(@"D:\Invoices.zip", FileMode.Open))
 {
//var archive= new ZipArchive
     using (ZipArchive archive = new ZipArchive(zipToOpen, ZipArchiveMode.Update))
     {
         archive.CreateEntryFromFile(@"D:/Invoice.pdf", "Invoices/myInvoice.pdf");
         ZipArchiveEntry entry = archive.CreateEntry("Readme.txt");
//using StreamWriter writer=new StreamWriter
         using (StreamWriter writer = new StreamWriter(entry.Open()))
         {
            writer.WriteLine("This folder contains the file compressed using C#");
            writer.WriteLine("========================");
         }
     }
 }
Using zipToOpen As New FileStream("D:\Invoices.zip", FileMode.Open)
'var archive= new ZipArchive
	 Using archive As New ZipArchive(zipToOpen, ZipArchiveMode.Update)
		 archive.CreateEntryFromFile("D:/Invoice.pdf", "Invoices/myInvoice.pdf")
		 Dim entry As ZipArchiveEntry = archive.CreateEntry("Readme.txt")
'using StreamWriter writer=new StreamWriter
		 Using writer As New StreamWriter(entry.Open())
			writer.WriteLine("This folder contains the file compressed using C#")
			writer.WriteLine("========================")
		 End Using
	 End Using
End Using
VB   C#

上記のコードは、FileStreamを使用して既存のZIPアーカイブ"D:\Invoices.zip"を読み取りモードで開き、アーカイブの内容を読み取りおよび修正するために更新モードでZipArchiveを作成します。 次に、CreateEntryFromFile メソッドを使用して、"D:" から "Invoice.pdf" をアーカイブに追加し、"Invoices" ディレクトリ内に配置して "myInvoice.pdf" という名前を付けます。

請求書ディレクトリ

ステップ #4: Zipアーカイブを抽出

以下のC#コードは、ZIPファイルの内容を指定されたディレクトリに抽出します。

ZipFile.ExtractToDirectory(@"D:\Certificate.zip", @"D:\ExtractedCertificate");
ZipFile.ExtractToDirectory(@"D:\Certificate.zip", @"D:\ExtractedCertificate");
ZipFile.ExtractToDirectory("D:\Certificate.zip", "D:\ExtractedCertificate")
VB   C#

上記のコードは、ZIPアーカイブからファイルを解凍するものです。ソースZIPアーカイブは「D:\Certificate.zip」にあり、解凍先のディレクトリとして「D:\ExtractedCertificate」を指定しています。このコードはアーカイブを解凍し、その内容を指定されたディレクトリに配置します。 作業しているディレクトリの絶対パスまたは相対パスを指定して、圧縮されたテキストファイルを作成することができます。

IronPDFの紹介

IronPDF .netアプリケーションにおけるPDFドキュメントの作成、操作、およびレンダリングを簡素化する多用途で強力なC#ライブラリです。 これにより、開発者はC#プロジェクト内でPDFファイルを簡単に生成、編集、変換するためのクラスとメソッドを提供します。 レポート、請求書、またはインタラクティブなフォームを作成する必要がある場合、IronPDFは幅広い機能と能力を提供し、.NETアプリケーションで包括的なPDF機能を必要とする企業や開発者にとって欠かせないライブラリです。 IronPDFを使用すると、PDFの生成と操作をC#アプリケーションにシームレスに統合し、さまざまなPDF関連のタスクを効率的に処理できます。

IronPDFの特徴

IronPDFは、C#アプリケーションでPDFを操作するための包括的な機能と能力を提供します。 主要な機能には以下が含まれます:

PDF生成: 幅広いテキスト、画像、およびグラフィック要素を使用して、新しいPDFドキュメントを簡単に作成したり、既存のPDFを修正したりすることができます。

HTMLからPDFへの変換: HTMLページ、URL、または生のHTMLコンテンツを、高忠実度レンダリングでPDFに変換します。 これは、レポートを生成したり、ウェブコンテンツをキャプチャしたりするのに特に有用です。

PDFのレンダリング:アプリケーションでの表示用にPDFをレンダリングし、C#プログラム内で直接PDFドキュメントを表示および操作できるようにします。

PDF編集:既存のPDFドキュメントにテキスト、画像、その他のコンテンツを追加、削除、または更新します。 ページレイアウトと構造の操作も可能です。

PDFフォーム: アンケート、質問表、その他のデータキャプチャアプリケーションを簡単に操作できるようにインタラクティブなPDFフォームを作成、入力、およびデータを抽出します。

PDF暗号化: 様々な暗号化アルゴリズムを用いてPDFを暗号化し、閲覧、編集、印刷の権限を設定して保護します。

PDFテキスト抽出: PDFドキュメントからテキストとデータを抽出し、インデックス作成、検索、またはデータ抽出のためにコンテンツを解析および分析することを簡単にします。

画像およびグラフィックのサポート:画像、図形、グラフィック要素をPDFに追加および操作し、リッチな視覚コンテンツを提供します。

PDF印刷:C#アプリケーションから物理または仮想プリンタに直接PDFを印刷します。

高度なテキストフォーマット: PDFドキュメント内のテキストにさまざまなフォントスタイル、色、フォーマットオプションを適用します。

PDFの結合および分割:複数のPDFドキュメントを1つに結合するか、大きなPDFを必要に応じて小さなセクションに分割します。

PDFアクセシビリティ:タグや代替テキストなどのアクセシビリティ機能を追加することで、障害を持つ個人がPDFドキュメントにアクセスできるようにします。

クロスプラットフォームサポート: IronPDFは、Windows、Mac、およびLinux環境の両方で動作し、クロスプラットフォームアプリケーションの構築を可能にします。

ライセンスオプション: IronPDFは柔軟な ライセンスオプション開発者が自分のニーズに最適なものを選択できるように、無料試用版を含む。

結論

結論として、C#でZIPアーカイブを扱うことは、ストレージや配布のためのファイル圧縮からデータの効率的な管理まで、さまざまなシナリオにおいて貴重なツールセットを提供します。 ZIPアーカイブの作成、抽出、または操作を行う場合、System.IO.Compressionネームスペースはユーザーフレンドリーで強力なツールキットを提供します。 さらに、ZIPアーカイブはファイル関連のタスクを管理するために不可欠ですが、より広範なドキュメントおよびレポート生成のシナリオにおいて、IronPDF のようなライブラリは C# アプリケーションの機能を拡張し、包括的なPDF生成、編集、およびレンダリングを提供することで、より複雑なドキュメント中心の要件に対して強力な選択肢となります。 C#のネイティブZIPアーカイブ機能とIronPDFの高度なPDF機能を組み合わせることにより、開発者は多様なニーズに応える汎用性の高い完全なドキュメント管理ソリューションを作成することができます。

< 以前
IronXLとGemBox.Spreadsheetの比較
次へ >
EPPlus ExcelからDatatableを読み込むC#(IronXLチュートリアル)

準備はできましたか? バージョン: 2024.9 新発売

無料のNuGetダウンロード 総ダウンロード数: 977,734 View Licenses >