substコマンドは便利

subst h: c:\windows

とかやるとwindowsフォルダをh:ドライブとしてアクセスできる。

WindowsのAPIで同じことをやりたい

DefineDosDeviceという便利なAPIがある。

DefineDosDevice(0, _T("h:"), _T("C:\\windows"));

で上記のsubstと同じ結果になる。

共有フォルダを扱うには一工夫

共有フォルダのようにUNCにドライブレターを割り当てる場合は一工夫が必要。\\FileServer?\SharedFolderにi:ドライブを割り当てる場合は以下。

DefineDosDevice(DDD_RAW_TARGET_PATH, _T("i:"), _T("\\??\\UNC\\FileServer\\SharedFolder"));

ちなみに、こうやって割り当てたドライブはエクスプローラから見ると「切断したネットワークドライブ」と表示される。net useコマンドと同じことをするWNetAddConnectionあたりを使えるなら、そちらの方が良いかもしれない。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)