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) 『昼夜逆転』工作室 | [トップページへ戻る] |