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

Tadamasa Teranishi yw3t-trns @ asahi-net.or.jp
2010年 10月 17日 (日) 00:23:24 JST


寺西です。

Toru Ishizuka wrote:
> 
> > 260 文字というところが怪しいですが、これは _MAX_PATH の制限ぽい
> > ですね。
> 
>  ANSI系のAPIの制限ですね。ActivePerlにAnsi版/Unicode版
> はなかったようなので、ActivePerlはこちらを使用している可
> 能性が高いですかね。環境に応じてAPIを呼び分けてくれてい
> ると大丈夫なのですが。。

_MAX_PATH の制限(260文字の制限)は ANSI/Unicode どちらの API にも
かかります。
Unicode 版は _MAX_PATH の制限を外すこともできるだけです。(その制限
を外さないで Unicode 版APIを使った場合は _MAX_PATH の制限にひっか
かります。それがまた話を複雑にします。)

なお、ActivePerl は ANSI版 API を使っています。(最近 95 系はサポート
外になりましたが、今まで 95 系もサポートしていましたから。)

> > って、ファイルはどうやって作ったのでしょう。
> 
>  mdコマンドでディレクトリを一発で掘った後、explorerでファ
> イルを別ディレクトリからコピーしてきました。

んー。XP だと作れないですね。OS の違いでかな。

Excel では
「入力されたパス'....'は長すぎます。パスを短くしてください。」
とアプリケーションがわざわざ文句を言うので、_MAX_PATH のチェックを
しているのだろうと思いますが、そのチェックでひっかかるケースと
ひっかからないケースがあるというのは何が違うのでしょうね。

Vista 以降で何か変わったような話もあった気がしますが、OS の違いと
いうことでしょうかね。
どこかで OS を変えて試してみます。
-- 
=====================================================================
寺西 忠勝(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 メーリングリストの案内