以前書いた、「AIRアプリでZIPファイルを解凍してみる」の続き。
FZip というフリーの zip ファイル操作用ライブラリを使って、AIR アプリで zip ファイルを解凍するという話で、実際、Windows 上では問題なく動いてたんだけど・・・
その AIR アプリを、Mac OS X 10.5 のマシンにインストールして使うと、全然 zip ファイルが解凍されない。
Flex Builder 上でデバッグしてみると、どうも、IOErrorEvent が発生してる。
エラーメッセージを出力してみると(trace("ERROR=" + evt.text);で)、
Error #2032: Stream Error. URL:app:/Users/shinoda/Library/Preferences/hogehogeApp/Local%20Store/data/cont/ds.zip
だって。
う~む・・・
パスは合ってると思うがなあ・・・頭に app: とか付いてるのが問題なのか?でも、こりゃ Flex が勝手に付けてるだけだからなあ。どうしようもないし。
結局、zip ファイル名を URLRequest の url プロパティに渡すところで、
Fzip = new FZip();
var request:URLRequest = new URLRequest();
var file:File = File.applicationStorageDirectory.resolvePath(ZipFileName);
request.url = file.nativePath;
~以下略
この、file.nativePath を file.url にしてやったら、IOErrorEvent は発生しないようになり、Mac OS X の上でも AIR アプリで zip 解凍をおこなうことが出来た。
ちなみに、file.url の場合、実際には "app-storage:/data/cont/ds.zip" という値が渡される。
まあ、Windows でも Mac でも同じように使いたいなら、出来るだけ native なんて付いてるプロパティは使うなってことですな(^^;
コメントする