SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

ComponentZine(ComponentOne)

テキストを直接Zipファイルに保存する.NETアプリケーションの作成

ComponentOne Studio Enterprise 2011JのZIP for .NETコンポーネントを使ったアプリケーションの作成

  • このエントリーをはてなブックマークに追加

C1Zipコントロールについて

 C1Zipコントロールは、Zip形式の圧縮・展開を可能にするC1ZipFileC1ZipEntry
C1ZipEntryCollectionという3つのクラスを提供しています。

 これらのクラスは、C1Zipライブラリの中で最高位に位置するもので、Zipファイルを作成、管理する機能を提供します。Zipファイルの内容を調べたり、その完全性をテストしたり、Zipファイルに対してエントリを追加、削除、抽出したりなどが可能です。

  • C1ZipFileクラス

     Zipファイルをカプセル化します。C1ZipFileオブジェクトを作成したら、それを既存のZipファイルに付加するか、このオブジェクトに指示して新しい空のZipファイルを作成できます。

  • C1ZipEntryクラス

     元のファイルの名前、サイズ、圧縮サイズなどの各エントリを記述するプロパティとメソッドを提供します。また、ストリームオブジェクトを返すOpenReaderメソッドも持っているため、先に展開せずにエントリの内容を読み取ることができます。

 また、C1ZStreamReader、C1ZStreamWriterクラスでは、Zipファイル内のデータはもちろん、あらゆる.NETストリーム上(メモリ、ファイル、ネットワークの各ストリームなど)でデータ圧縮を使用できます。

 C1ZStreamReaderオブジェクトとC1ZStreamWriterオブジェクトを使用するには、これらのオブジェクトを通常のストリームに付加し、これらを介してデータの読み取りと書き込みを行います。データは基底のストリームに対してオンザフライで圧縮(または展開)されます。この設計により、ネイティブの.NETストリームとうまく統合できます。

 ZStreamクラスは、C1Zipライブラリの最下位クラスで、前述の上位クラスで広く使用され、大部分のユーザーはZStreamを直接使用する必要はありません。

C1Zipコントロールでできること

 C1Zipコントロールは、大まかに以下のような使い方ができます。

  • メモリ内のデータを圧縮する

     メモリ内の任意のデータを圧縮・展開できます。この技法は、アプリケーションの実行中にストリームを管理する場合に役立ちます。ストリームを圧縮することにより、アプリケーションのメモリ使用量を抑えることができます。

  • ファイルを圧縮する

     個々のファイルを圧縮することにより、それぞれのファイルサイズを減らします。また、複数のファイルを1つにまとめることができます。

  • データをシリアル化し圧縮する

     C1Zipと.NETのシリアル化を組み合わせて、通常サイズより小さいストリームにオブジェクトを保存できます。オブジェクトをXMLストリームにシリアル化している場合には、ディスク領域やネットワーク帯域幅の節約は非常に重要となる可能性があります。

  • Zipファイルの処理

     Zipアーカイブ内のファイルを開いたり、検査、追加、および削除できます。Zipファイル内の個々のファイルにアクセスしデータを取りだしたり、パスワードを使用してファイルを保護することもできます。

フォームの作成

 では、C1Zipコントロールを使ってプログラムを作成しましょう。

 作成するプログラムは、TextBoxコントロールに入力されたテキストデータを、直接Zipファイルを作成して保存するアプリケーションです。一度テキストファイルを作成してからそれをZipファイルに圧縮するのではなく、テキストファイルの作成とZipファイルの作成を一度に行います。さらに、作成したZipファイルから直接テキストデータを読み出す機能も付加します。

GUIのデザイン

 使用するコントロールは、TextBoxコントロールとButtonコントロールが3つ、というシンプルなものです。TextBoxコントロールは、MultiLineプロパティをTrueにし、スクロールバーを表示させます。

フォームのレイアウト
フォームのレイアウト

次のページ
入力されたテキストデータをZip化する処理

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
ComponentZine(ComponentOne)連載記事一覧

もっと読む

この記事の著者

瀬戸 遥(セト ハルカ)

8ビットコンピュータの時代からBASICを使い、C言語を独習で学びWindows 3.1のフリーソフトを作成、NiftyServeのフォーラムなどで配布。Excel VBAとVisual Basic関連の解説書を中心に現在まで40冊以上の書籍を出版。近著に、「ExcelユーザーのためのAccess再...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6381 2012/01/25 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング