Function GetShortenedFileName(ByVal strFilePath As String, _
ByVal maxLength As Long) As String Dim astrTemp() As String Dim lngCount As Long Dim strTemp As String Dim index As Long ' if the path is shorter than the max allowed length, just return it If Len(strFilePath) <= maxLength Then GetShortenedFileName = strFilePath Else ' split the path in its constituent dirs astrTemp() = Split(strFilePath, "\") lngCount = UBound(astrTemp) ' lets replace each part with ellipsis, until the length is OK ' but never substitute drive and file name For index = 1 To lngCount - 1 astrTemp(index) = "..." ' rebuild the result GetShortenedFileName = Join(astrTemp, "\") If Len(GetShortenedFileName) <= maxLength Then Exit For Next End If End Function |