なぜ、フォルダ名を変えても動く?

  年末年始に仕事したところで、問い合わせがあった。動かないように制御しているプログラムが動いてしまう。とりあえずインストールは全部にしておいて、ライセンス数の関係上、動作可能な物と不可能な物をわけて制御してもらってたが、不可能なものでも動いてしまうと言う。

 

  本当に動く。インストールフォルダをリネームしても動く。なぜ?いろいろ試してみる。フォルダ名の末尾に文字を足しても動く。しかし、頭に文字を足すと動かなくなる。なぜ?フォルダ名の間に文字を入れてみる。動く。なぜ?頭の方に入れてみる。動かない・・・。

 

  わかった。ショートネームで見ているんだ。C:\ABCDEFGHK がインストールフォルダとすると、C:\ABCDEF~1で見てるんだ。C:\ABCDEFGHK_XYZとリネームしても、内部的にはC:\ABCDEF~1 と同じ事になるんだ。だからC:\ABCDEFxGHK は動くけど、C:\ABCDEFGxHK は動かない。

 

  レジストリ見たってロングネームで登録されてるのに、なんでこんな動きするんだ、Windows?しかし、理由がわかったところで、どうするかなー。