How to Translae a Mapped Drive to a UNC Path
-
When I browse a file under a share folder in server, if the folder is a mapped drive in my computer. I will get the file path like Z:\\abc.dll, how can I translate it to a UNC path like \\\Server\\Open\\abc.dll. Liu Xilin
following is from msdn : To find the UNC path associated with a mapped network drive letter, follow these steps: 1.Create a module and type the following lines in the Declarations section: Option Explicit ' These represent the possible returns errors from API. Public Const ERROR_BAD_DEVICE = 1200& Public Const ERROR_CONNECTION_UNAVAIL = 1201& Public Const ERROR_EXTENDED_ERROR = 1208& Public Const ERROR_MORE_DATA = 234 Public Const ERROR_NOT_SUPPORTED = 50& Public Const ERROR_NO_NET_OR_BAD_PATH = 1203& Public Const ERROR_NO_NETWORK = 1222& Public Const ERROR_NOT_CONNECTED = 2250& Public Const NO_ERROR = 0 ' This API declaration is used to return the ' UNC path from a drive letter. Declare Function WNetGetConnection Lib "mpr.dll" Alias _ "WNetGetConnectionA" _ (ByVal lpszLocalName As String, _ ByVal lpszRemoteName As String, _ cbRemoteName As Long) As Long 2.Type the following procedure: Function GetUNCPath(strDriveLetter As String) As String On Local Error GoTo GetUNCPath_Err Dim Msg As String, lngReturn As Long Dim lpszLocalName As String Dim lpszRemoteName As String Dim cbRemoteName As Long lpszLocalName = strDriveLetter lpszRemoteName = String$(255, Chr$(32)) cbRemoteName = Len(lpszRemoteName) lngReturn = WNetGetConnection(lpszLocalName, _ lpszRemoteName, _ cbRemoteName) Select Case lngReturn Case ERROR_BAD_DEVICE Msg = "Error: Bad Device" Case ERROR_CONNECTION_UNAVAIL Msg = "Error: Connection Un-Available" Case ERROR_EXTENDED_ERROR Msg = "Error: Extended Error" Case ERROR_MORE_DATA Msg = "Error: More Data" Case ERROR_NOT_SUPPORTED Msg = "Error: Feature not Supported" Case ERROR_NO_NET_OR_BAD_PATH Msg = "Error: No Network Available or Bad Path" Case ERROR_NO_NETWORK Msg = "Error: No Network Available" Case ERROR_NOT_CONNECTED Msg = "Error: Not Connected" Case NO_ERROR ' all is successful... End Select If Len(Msg) Then MsgBox Msg, v