[Namazu-win32-users-ja 1243] Re: mknmzの処理が中断する

Tadamasa Teranishi yw3t-trns @ asahi-net.or.jp
2010年 9月 3日 (金) 09:13:51 JST


寺西です。

Toru Ishizuka wrote:
> 
> > 一言で言えば、ActivePerl の問題ってことになってしまいます。
>  windows処理系だけのために(File::Find::)find()を使用し
> ないようにnamazu側で対応するのは難しいですかね。

Win32::API を使って、OS の FindFirstFile 等を使って探索するという
ことは可能かと思いますが、
日本語 Windows に特化して処理を変えたくはないというのが本音ですね。

ディレクトリトラバーサル問題を入れてしまうおそれもあるので。

> > 具体的にダメなパス名は何でしょう。
> 
>  最初のメールに書きましたが、ある条件でダメなファイルで
> も、一度に処理するファイル数を絞ればOKになりますので、特
> 定のファイル名文字列がダメというわけではありません。

いや、たぶんそれは問題のあるパスを処理した先か後かが変わる
とか、問題のあるパスの処理が対象から外れたとかそういった事情で
しょう。

何処かに2バイト目が 0x5C の文字が含まれるディレクトリ名か
ファイル名があるのだと思います。
(あるいは半角スペースとか、半角カタカナとかが悪さしているかも
しれません。)

>  ダメになるのは大雑把に、パス名がほぼ日本語で100バイト
> から300バイトのファイルが5000ファイル程ある場合のようで
> す。

長さは直接関係ないです。
が、長いと当然そのパスまでに含まれるディレクトリ数やファイル数
が多くなるので、その中に問題のあるパスが含まれる確率は上がり
ますが。
-- 
=====================================================================
寺西 忠勝(TADAMASA TERANISHI)  yw3t-trns @ asahi-net.or.jp
http://www.asahi-net.or.jp/~yw3t-trns/index.htm
Key fingerprint =  474E 4D93 8E97 11F6 662D  8A42 17F5 52F4 10E7 D14E


Namazu-win32-users-ja メーリングリストの案内