[トップページへ戻る]

C# unrar.dllを使うための簡単なラッパークラス

2013年3月
RARアーカイブ(圧縮ファイル)の解凍用dllが公開されている。それをC#から簡単に使えるようにした。


RARアーカイブとは
Windowsでお馴染みのファイル圧縮形式は、.zip/.msi/…。そういったものの一つに.rarという形式があり、ヨーロッパ方面で使われているようだ。日本の.lzhみたいなものだろう。
RAR形式の圧縮ファイル(書庫)の、解凍専用DLLが開発元サイトで公開されている。Cで組まれている。それをC#から簡単に使えるようにした。暗号化解除(パスワード入力)などの機能は省き、シンプルな使い方に徹した。

RAR開発元: http://www.rarlab.com/
ウィキペディア RARの説明: http://ja.wikipedia.org/wiki/RAR

C#でunrar.dllを使う
RAR開発元のサイトで、トップページから RAR - Extras と辿り、「UnRAR.dll」のリンクからダウンロードする。
自己解凍形式のrarファイルになっているのはさすがだ。実行して適当なフォルダに解凍する。

その中には様々なプログラミング言語のサンプルコードが含まれている。C#も含まれているが、Visual Studio 2003時代のもので、当時のunrar.dll仕様に沿って書かれている。現在の仕様とは違っており、そのままでは使えない。結局自分でイチから組んだ。その際、unrar.dllはプロジェクトの参照設定に加える形ではなく、動的に取り込む形にした。プラグイン形式の使い方を意識しているため。

UnRarDllMgr ダウンロード unrarmgr_v100.zip

クラスの概要を示す。
6-25行目はunrar.dllの関数を呼び出すもの。C#のプログラム側からはこれらを組み合わせて利用する。…のは面倒くさいので、決まった手続きをまとめたメソッドを用意した。それが31-36行目。


構造体の定義。
WindowsXP以降で使うことを前提とし、文字列の扱いはUnicode決め打ち。


使い方の例。
書庫内ファイルはフォルダに展開する。メモリ上に展開する方法はない。




◆ ◆ ◆
RARアーカイブ。使う機会はそうそう無いだろうと思うが興味本位で作った。


(C) 『昼夜逆転』工作室 [トップページへ戻る]