とある日の妄想
- 慢心は己の敵 -
何気ない日常にふと思いついた世迷言をつづるブログ
■携帯版はこちら
http://blog.toaruhi.net/m/
ブログ内検索
キーワード
※検索エンジンで検索した情報が見当たらない場合にご利用ください。
新着記事
ジョブズ療養中
鉄拳6BR(1)
がくぽ2曲目状況
がくぽ2曲目
ミク1曲目リメイク
がくぽ2曲目
がくっぽいど使用曲の反応
がくぽ ニコニコに投稿してみた
がくぽ1曲目
がくっぽいど
カテゴリ一覧
全て(950)
このブログについて
(1)
DTM
(56)
MIDI
(10)
音楽全般
(28)
Mac
(83)
PC
(25)
Webプログラミング
(48)
JavaScript
(23)
プログラミング
(13)
DB
(6)
FLASH
(26)
ネットワーク
(5)
Web全般
(16)
携帯
(16)
NDS
(22)
鉄拳
(258)
ゲーム
(80)
漫画
(7)
旅
(5)
法律
(14)
アニメ
(3)
本
(5)
スポーツ
(7)
ラジコン
(2)
育児
(3)
歌詞
(13)
更新履歴
(36)
記憶の片隅
(7)
雑記
(118)
外部リンク
ブラウザゲーム
格差社会を思う
人気ブログランキング
プレイヤーズ王国(konkon)
ピアプロ(konkon)
ニコニコ動画公開オリジナル曲
空字ログ
muzie(konkon@VL)
作者について
HN:konkon
お問い合わせはこちら
2003年09月17日(火)
慢心は己の敵
プログラミング
油断すると、とり憑かれるね〜ほんとに。どんな物事でもそうだと思うけど、慣れてきたときが一番危ないっていうのはこういうことなんだろうな。常に冷静に、客観的に自分をみることができるようにつとめよう。
それはともかくCJZip(0.7以前)に意外と大きな問題点があった。
ディレクトリを圧縮すると、StuffIt Expanderで解凍できない。ファイルのみをドロップした場合は解凍できるんだけど、ディレクトリを含むアーカイブを解凍すると、ディレクトリの中身が空になってしまう。
どうしてかは、結局良く分からなかった。JavaのZip関連のクラスを使ったサンプルを掲載しているサイトも、Windows系の解凍ソフトでうまく解凍できないという問題について触れているところがいくつかあった。どれをみても、残念ながら、これだ!という解決策は見当たらなかった。
で、俺がとった解決策は、ディレクトリをアーカイブに追加するときは
ZipOutputStream.setMethod(ZipOutputStream.STORED)
とし、ファイルのときは
ZipOutputStream.setMethod(ZipOutputStream.DEFLATED)
とする。そしてディレクトリエントリの書き込みをする前に
ZipEntry.setCrc(0)
として、CRC32情報をエントリに設定しておく。なぜかは分からないが、setCrcは圧縮メソッドがSTOREDでないとファイルにデータとして記録できないようだ(ただし、その場でエントリからgetCrcなどを使って読み出せば、DEFLATEDでも設定値が読み出せる)。setSizeなども同様だった。
ファイルを圧縮するときもSTOREDにすればCRC32は書き込めるが、ファイル自体が圧縮されないまま格納されているような感じで、ファイルサイズが変わらないので、実用的でない。
とりあえず上記の方法で、StuffIt Expander(Mac)、解凍レンジ(Win)、Lhasa+(Win)で解凍できることを確認した。ファイルへのCRC32設定などについては、引き続き調べていきたいと思う。
トラックバックURL
一覧に戻る
コメントを投稿する
名前
コメント
一覧に戻る
▲このページのトップ