酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

Windows MobileでSharpZipLibを使ってZip形式のアーカイブを簡単に作成(圧縮)/展開(解凍)する

SharpZipLibを使用してZip形式のアーカイブを簡単に作成(圧縮)/展開(解凍)します。ここでは、SharpZipLibのバージョンは0.85.5を使用しています。

SharpZipLibは、以下のアドレスからダウンロード出来るオープンソースのライブラリです。

上記のサイトからSharpZipLibをダウンロードできなくなっている場合は、本記事で紹介しているバージョンと異なりますが、v0.86.0のバイナリがここからダウンロードすることが可能です。

この方法では簡単にZipの作成(圧縮)/展開(解凍)が出来るのですが、この方法では非同期で行う為のメソッドが用意されていないので、プログレスバーで圧縮や解凍の進捗を出すのには向いていないので、別の処理を考える必要があるかもしれません。

**アーカイブを作成(圧縮)

前回は、ICSharpCode.SharpZipLib.Zip.ZipOutputStreamを使ってアーカイブの作成を行いましたが、今回はそれより簡単に作成します。

|vb| Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) _ Handles Button1.Click

' 作成するZIPファイルの設定
Dim zipPath As String = "C:\test.zip"
' 圧縮するフォルダの設定
Dim dirPath As String = "C:\dir"

' 圧縮時にパスワードを設定
Dim password As String = ""

' 指定したディレクトリでZipアーカイブを作成
Dim zip As New ICSharpCode.SharpZipLib.Zip.FastZip()
zip.Password = password
zip.CreateZip(zipPath, dirPath, True, "")

End Sub ||<

**アーカイブの展開(解凍)

前回は、ICSharpCode.SharpZipLib.Zip.ZipInputStreamを使ってアーカイブの展開を行いましたが、今回はそれより簡単に展開します。

|vb| Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) _ Handles Button1.Click

' 展開するZIPファイルの設定
Dim zipPath As String = "C:\test.zip"
' 展開するフォルダの設定
Dim dirPath As String = "C:\dir"

' 展開時のパスワードを設定
Dim password As String = ""

' 指定したディレクトリでZipアーカイブを展開
Dim zip As New ICSharpCode.SharpZipLib.Zip.FastZip()
zip.Password = password
zip.ExtractZip(zipPath, dirPath, "")

End Sub ||<

関連記事