Namazu-devel-ja(旧)


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

Re: lha フィルタ



臼田です。

> Yukio USUDA wrote:
> > 
> > Tadamasa Teranishi wrote:
> > > ファイルを1つづつ指定して STDOUT に取り出し、それを別名のテンポラリ
> > > ファイルとして保存する。そのテンポラリファイルを解析するといった
> > > 処理の方が良いのかもしれません。
> > 
> > lhaやzipはきれいにファイルリストを取得する方法が用意されていないし
> > かなり大掛かりな気がします。
> 

空白区切りでならんでいることがわかっているので
ディレクトリであることも区別して取り出すことはできそうですね
unzipは一種類しかないですが、lhaはバージョン違いがいろいろありそうで
出力が同じなのかどうか気になります。

Tadamasa Teranishi wrote:
> unzip なら
>  $ unzip -Z -1 zip.zip
> で、リスト一覧が得られます。(ファイルのみでなくて、ディレクトリも
> 出てくるので、それは排除しないといけないかもしれない。) 
> 
$ unzip -Z zip.zip
でファイルのサイズもチェックしてサイズが0とか大きすぎるものは
展開もやめたほうがいいですね。
lhaも-lq2の出力をパースできるでしょう。

> lha はすっきりしていませんね。
>  $ lha -lq2 lha.lzh
> で、ls -alF のような形式となるので、何カラム以降取り出すといった
> 方法になるかもしれません。
> 
> tar は
>  $ tar tf tar.tar
> でリスト一覧が得られますね。(こちらもディレクトリが含まれます。)
> -- 

毎回lhaやzipを呼び出すとどれくらい遅くなるのかわかりませんが
ファイル名問題は解消されますし、このやり方なら
入れ子になったアーカイブファイルもutil::tmpnamの修正をしなくても
対応できそうに思えます。

このやりかたも試してみますか
余力があればArchive::TARとArchive::ZIPの使い方も調べましょう。

臼田幸生