|
代替ストリーム名を「:」で繋いだファイル名の意味が曖昧になるとき、これを秀丸
エディタで
開こうとすると思わぬ動作をすることがあります。
例えば、カレントドライブが
C:\
で、そのカレントディレクトリが
C:\dir
であり、ここに2個のファイル
foo
C
があったとします。そして、ファイル
C
には代替ストリーム
foo
が存在したとします。この時、このカレントディレクトリ上において、ファイル名
C:foo
は2つの異なる意味を持ってしまいます。1つはカレントディレクトリ
C:\dir
内のファイル
C
の代替ストリーム
foo
、すなわち
C:\dir\C:foo
を指します。もう1つはドライブ
C:\
におけるカレントディレクトリ上のファイル
foo
、すなわち
C:\dir\foo
を指します。
この場合において、まずコマンドプロンプトでこのディレクトリを開きます。
cd /d "C:\dir"
次に、ファイル名"C:foo"を秀丸エディタで開きます。
hidemaru "C:foo"
すると、「C:\ドライブのカレントディレクトリ内のfooファイル」と解釈されて
"C:\dir\foo"の方が開かれます。これは正常な動作だと思われます。その次に、
「カレントディレクトリ内のCファイルのfoo代替ストリーム」を開くことを意図して
hidemaru ".\C:foo"
を実行します。すると、他のプロセスがファイルを開いているわけでもないのに
「このファイルは、他のアプリケーションによって書き換えられてしまいました。
読み直しますか。」
のダイアログが出てきてしまいます。また、エディタ上の内容は"C:\dir\foo"の方で
あるにも
かかわらず、タイトルバーには"C:\dir\C:foo"の方が表示されていて、ちぐはぐな状
態になって
しまいます。また、絶対パスを指定して
hidemaru "C:\dir\C:foo"
を実行しても同じ結果となります。
バージョンはv8.98β6 Float x64です。
|
|