卓駆★その後 その2

そんなこんなでVB2008で作っているわけだが困ったことに遭遇。

DOSの場合】
C:\>cd "\Program Files"

C:\Program Files>d:

D:\>cd windows

D:\Windows>c:

C:\Program Files> ←Cドライブのカレントディレクトリは記憶されている

なのだが、これをVB2008でやろうとすると

【@VB2008】
? CurDir()
"C:\Documents and Settings\user\My Documents\Visual Studio 2008\Projects\Sparta"
ChDir("C:\Program Files")
? CurDir()
"C:\Program Files"
ChDrive("D")
? CurDir()
"D:\"
ChDir("D:\Windows")
? CurDir()
"D:\Windows"
ChDrive("C")
? CurDir()
"C:\Documents and Settings\user\My Documents\Visual Studio 2008\Projects\Sparta"
※Cドライブのカレントディレクトリは"C:\Program Files"にしたじゃないか・・・orz

え?なんで?という感じだな。DOSの場合だとカレントディレクトリってのはドライブごとに存在してる感じだしVB2008ではカレントディレクトリが一つしか存在しないか、若しくはChDrive()でドライブを変更すると必ずルートディレクトリがカレントになる仕様のようだ。エクスプローラで「D:」とかフォルダを指定しないで開くと必ずルートディレクトリが表示される。


VB2008で作成するにあたってはドライブごとのカレントディレクトリを自アプリで管理してやれば対応できなくもないがこれまた面倒な話だ。もしかするとこの場面で使用する関数を間違っているのかもしれん・・・
もう少し調査するか。