2008-01-07

いまさらながら GZipStream を実装してみる

Windows Mobile用の.NET Compact Framework 2.0だと、GZipStreamがないので、gzipなデータを展開するのが面倒。zlibce.dllを使うとかいろいろあるのだけど、Windows Mobile 6.0 Standard (X02HT)だと標準でzlib.dllを持っているので、それを直接dllimportすることにした。ただ単に、Content-Encoding: gzipをハンドルしたいだけなんで。

実装する前に、誰かが実装しているかどうかを調べてみたところ、Google Data APIs.NET libraryにあるのを発見。そのまま、持ってきてテストしてみたところ、二つの問題が。。。

  • finallyで常にクラッシュする。GCHandle使っているからだろ。
  • ヘッダをスキップしていないので、GZPI Streamの解析で常にStreamErrorになる

ということで、そこらを直してみたところ、上手く動いた。

ま、.NET Compact Framework 3.5だと、GZipStreamは実装されているので、こんな苦労はいらないけど。

0 件のコメント: