- 題名: ネットワークドライブの絶対パスを取得するには?
- 日時: 2004/12/25 18:07:31
- ID: 8196
- この記事の返信元:
- (なし)
- この記事への返信:
- [8200] Re[1]: ネットワークドライブの絶対パスを取得するには?2004/12/25 19:52:45
- ツリーを表示
こんにちは、じゃんぬねっと です。
■No8196に返信(うどさんの記事)
> ネットワークドライブの絶対パスを取得するにはどうしたらよいでしょうか?
.NET Framework にはそういうメソッドはないのかなぁ...
Google で、小1時間調べてみたんですが見当たりませんでした...。
だとすると、Win32API の WNetGetConnection() 関数を使うか、
レジストリを見に行くしかないと思います。
'/ WNetGetConnection の 宣言
Private Declare Function WNetGetConnection Lib "MPR.DLL" Alias "WNetGetConnectionA" ( _
ByVal lpszLocalName As String, _
ByVal lpszRemoteName As String, _
ByRef cbRemoteName As Integer _
) As Integer
'/ ネットワークドライブのリモートパスを取得するメソッド
Private Shared Function GetRemotePath(ByVal nDriveLetter As String) As String
Dim nRemotePath As String = New String(ControlChars.NullChar, 1024)
Call WNetGetConnection(nDriveLetter, nRemotePath, 1024)
Return nRemotePath.Substring(0, nRemotePath.IndexOf(ControlChars.NullChar))
End Function
'/ Button1 を押下した時に「M:」のリモートパスを表示
Private Sub Button1_Click(中略) Handles Button1.Click
Dim nRemotePath As String
nRemotePath = GetRemotePath("M:")
MessageBox.Show(nRemotePath)
End Sub
分類:[.NET]
掲題のとおりなのですがネットワークドライブの絶対パスを取得するにはどうしたらよいでしょうか?ドライブリストでドライブを選択するときにネットワークドライブを選択するとエラーになってしまいます。ドライブリストを使ってネットワークドライブを選択したときのハンドリング方法のノウハウがある方がいらっしゃいましたらアドバイス頂きたく思います。