ZIPファイルを開く処理
では、最初にZIPファイル「images.zip」を開く処理を作成します。処理は、すべてButtonコントロールのClickイベントハンドラで行います。ZIPファイルの指定は、「ファイルを開くダイアログボックス」を使用します。
まず、「System.IO」「C1.C1Zip」の2つの名前空間への参照を設定します。そして、「ファイルを開くダイアログボックス」を表示し、ZIPファイルのファイル名を取得します。取得したファイル名はLabelコントロールで表示します。
Imports System.IO Imports C1.C1Zip Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim w, h, i As Integer Dim fname As String Dim ret As DialogResult = OpenFileDialog1.ShowDialog() If ret = DialogResult.Cancel Then MessageBox.Show("キャンセルボタンが押されました。" & Chr(13) & _ "操作をキャンセルします", "操作の中止", _ MessageBoxButtons.OK, MessageBoxIcon.Stop) Exit Sub Else fname = OpenFileDialog1.FileName Label1.Text = fname End If
using System.IO; using C1.C1Zip; namespace myzip_cs { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { int w, h, i; string fname; DialogResult ret= openFileDialog1.ShowDialog(); if(ret == DialogResult.Cancel) { ret = MessageBox.Show("キャンセルボタンが押されました。" + "\r\n" + "処理を終了します", "操作の中止", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; }else { fname = openFileDialog1.FileName; label1.Text = fname; }
取得したファイル名を使ってZIPファイルを開きます。まず、C1ZipFileクラスのインスタンスを作成します。そして、Openメソッドを使ってZIPファイルを開きます。
ファイルを開いたら、Entriesプロパティで現在開いているZIPファイル内のエントリのコレクションクラス「C1ZipEntryCollection」を取得します。このコレクションには、ZIPファイル内に圧縮されているファイルの情報が「C1ZipEntryオブジェクト」として格納されています。
また、コレクションのCountプロパティを調べると、圧縮されているファイル数が把握できるので、これを確認します。もし、何も格納されていなければ、ここで処理を中止します。
'ZIPファイルを開く Dim zip As New C1ZipFile() zip.Open(fname) 'ZIP内のファイル数の確認 Dim cnt As Integer = zip.Entries.Count If cnt = 0 Then MessageBox.Show("読み込むファイルがありません") Exit Sub End If
//ZIPファイルを開く C1ZipFile zip = new C1ZipFile(); zip.Open(fname); //ZIP内のファイル数の確認 int cnt = zip.Entries.Count; if( cnt == 0) { MessageBox.Show("読み込むファイルがありません"); return; }