Convert Shared folder path to UNC path

后端 未结 2 1663
名媛妹妹
名媛妹妹 2021-01-07 01:35

I\'m trying to convert current shared folder path to unc path by manipulating current path with computer name. However result in compile error: expected array on the line\"e

相关标签:
2条回答
  • 2021-01-07 02:20

    I'm surprised that this line doesn't throw a Mismatch error:

    CurrentPathA = Split(CurrentPath, "\")
    

    The Split function converts a string to an array. So, attempting to assign the result of Split to a string variable should raise an error.

    In any case, the Ubound function requires an array. Thus, the error when you're doing Ubound(_string_) instead of UBound(_array_).

    Dim CurrentPathA As Variant

    0 讨论(0)
  • 2021-01-07 02:22

    Or use file system object:

    Function GetUNCLateBound(strMappedDrive As String) As String
    
        Dim objFso  As Object
        Set objFso = CreateObject("Scripting.FileSystemObject")
    
        Dim strDrive As String
        Dim strShare As String
    
        'Separate the mapped letter from
        'any following sub-folders
        strDrive = objFso.GetDriveName(strMappedDrive)
    
        'find the UNC share name from the mapped letter
        strShare = objFso.Drives(strDrive & "\").ShareName
    
        'The Replace function allows for sub-folders
        'of the mapped drive
        GetUNCLateBound = Replace(strMappedDrive, strDrive, strShare)
    
        Set objFso = Nothing 'Destroy the object
    
    End Function
    

    I just found and modified this, to which the credit is due, to be late-bound:

    http://pagecommunication.co.uk/2014/07/vba-to-convert-a-mapped-drive-letter-to-unc-path/

    0 讨论(0)
提交回复
热议问题