フォルダをドライブとしてマウントする方法を記載します。
コマンドプロンプトを起動して、substコマンドで行えば出来ますので、外部コマンドとしてsubstを起動させる方法もありますが、Win32を使用してマウンとする方法を記載します。
kernel32.dllをインポートするので、Imports.System.Runtime.InteropServicesを記述します。
ドライブのマウントする
Imports System.Runtime.InteropServices <DllImport("kernel32.dll")> Public Shared Function DefineDosDevice(dwFlags As Integer, lpDeviceName As String, lpTargetPath As String) As Boolean End Function ''' <summary> ''' 指定場所を仮想ドライブに割り当てます。 ''' </summary> ''' <param name="lpDeviceName">ドライブ名</param> ''' <param name="lpTargetPath">指定場所</param> ''' <returns></returns> Public Function MapDrive(lpDeviceName As String, lpTargetPath As String) As Boolean Return (DefineDosDevice(&H0, lpDeviceName, lpTargetPath)) End Function
指定フォルダをドライブに割り当てる
Dim rc = MapDrive("U:", "C:\Work")
デバイスパス指定で割り当てる
Dim rc = MapDrive("U:", "\Device\HarddiskVolume6")
フォルダではなくデバイスパスの指定で割り当てることも出来ます、その場合、DefineDosDevice()の第一引数を0から1に変えてください。
GUID指定で割り当てる
Dim rc = MapDrive("U:", "\\?\Volume{0f0eee7d-39d3-11e6-9ce5-001583544e78}\")
GUID指定でも割り当てることが出来ます。DefineDosDevice()の第一引数は0です。