Namazu-devel-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: lha フィルタ



臼田です

Tadamasa Teranishi wrote:

> Yukio USUDA wrote:
> > 
> > mknmz -O で出力先を絶対パスにしたときはうまくいくのですが
> > 出力先を相対パスにすると zip.plから呼ばれたpowerpoint.plの途中で
> > エラーがでます。
> 
> きちんと調べていませんが、おそらく File::Find の問題でしょう。
> ファイルを探索中、カレントディレクトリが移動してしまうので、
> 出力先を相対パスで指定するとまずくなるのではないかと思います。
> 
> たぶん sub ではファイルリストの一覧を @files にでも入れて、
> find 終了後に @files に入ったリスト一覧を処理すれば良いのでは
> ないでしょうか?
> 

File::Findの仕様については確かめていませんが
いただいた修正案を zip.plに適用してみました。
再帰呼出し中の powerpoint.plもうまく動作しています。

あとは
・アーカイブファイル中にアーカイブファイルがあったときの挙動
・OSが拒否する文字(文字列)がファイル名が入っていたときの挙動
ですか。

Tadamasa Teranishi wrote:
> ファイルを1つづつ指定して STDOUT に取り出し、それを別名のテンポラリ
> ファイルとして保存する。そのテンポラリファイルを解析するといった
> 処理の方が良いのかもしれません。

lhaやzipはきれいにファイルリストを取得する方法が用意されていないし
かなり大掛かりな気がします。

まだドキュメントも読んでいないのですが
Compress::Zlibを使った方式に変えることも考えたほうがよいかもしれません。
http://search.cpan.org/dist/Compress-Zlib/Zlib.pm
少し勉強をしてみることにします。

臼田幸生