これまでの端末は、SDカードを抜き差しして、データをやりとりしていたが、
新しいの端末 Casio DT-5200(中古)は、
Windows Mobile デバイス センター経由でしか、ファイル更新出来ない仕様になる。
Wifiでも積んでいれば、FTPという手があったが、今回のは未対応の端末なので、
今回は、グレードルに差すと、
「My Documentのファイル同期が行われる機能を利用」することにした。
まず、設計の問題なのだが、
1つのXMLファイルにすると非力な端末故、動作が極端に遅いため、
苦肉の策として、XMLファイルを処理単位(ヘッダーとボディー)に分割。
端末側の問題は、軽減できたが、
次の課題は、SDにコピーするのに時間がかかる・・・
このグレードルに差したときも、コピーに2分近く要す。
30台のコピーに1時間。
SDへのコピーは同時に何枚コピー出来たのに、
新端末は、グレードルは1台ずつ。
これじゃ使えない・・・
ってことで、ZIP圧縮して、1つにしてみたら、早かったので、
これを端末側で解凍して、利用するしかなく、
今回は、表題の通り、「DotNetZip」を使う。
※Compact Frameworkに対応していることが、重要。
***
使い方は、おおよそこのサイトで理解できるので、
?DotNetZip(Ionic Zip Library)を使ってZIP書庫のリスト表示などを行う – DoboWiki
今回は、指定エンコードでの読み込みについて。
Read Method (fileName, options)
のサンプルにもあるように、
指定コードは、optionsで指定するみたいだが、
var options = new ReadOptions { Encoding = System.Text.Encoding.GetEncoding("utf-8"); };
.net 2.0では、エラーになる。
3.5にしたら良いわけだが、
ReadOptions options = new ReadOptions(); options.Encoding = System.Text.Encoding.GetEncoding("utf-8");
こう書けば通った。
3時間ほどかけてわかったことなので、後輩のためにココに残す。