酢ろぐ!

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

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

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

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

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

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

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

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

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を使ってアーカイブの展開を行いましたが、今回はそれより簡単に展開します。

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

## 関連記事