[Namazu-win32-users-ja 1259] Re: 解決しました( Re: mknmzの処理が中断する )

Tadamasa Teranishi yw3t-trns @ asahi-net.or.jp
2010年 10月 2日 (土) 19:27:40 JST


寺西です。

"Hideyuki SHIRAI (白井秀行)" wrote:
> 
> >  英語では確認していないのですが、日本語をパスに含む場合
> > 260バイトを超えると明らかに挙動がおかしくなります。
> 
> Windows 系の MAX_PATH 260 の制限じゃ無いでしょうか?

どうもそれっぽいです。
で、日本語を含むかどうかは関係なく、パスの長さそのものの問題だった
ようです。

# ANSI版 API の場合ですが。

ANISI 版 API でも、_MAX_PATH の制限をすり抜ける API があったりする
ので微妙な仕様なんですよね。

Unicode 版 API を使えばこの制限はクリアできるのですが、ActivePerl は
対応していないので、Win32:API (か、Win32::Unicode なのかな?) を使って
Windows べったりのコーディングを行わないといけない気がして、乗り気に
なれませんね。

しかも、フィルタプログラムはそのような長いパスを扱えない可能性が
あるので、短いパスにワークディレクトリを掘ってそこで実行する
ような仕組みとか必要そうです。

何かと厄介ですね。
-- 
=====================================================================
寺西 忠勝(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 メーリングリストの案内