Declare Function PathCompactPathEx Lib "shlwapi.dll" _ Alias "PathCompactPathExA" _ (ByVal pszOut As String, _ ByVal pszSrc As String, _ ByVal cchMax As Long, _ ByVal dwFlags As Long) As Long
Функция PathCompactPath уплотняет длинные имена файлов до указанной длины, заменяя часть имени пути точками (...).
В случае успеха функция возвращает True, в противном случае возвращается False
' Сжимаем длинное имя файла ' Поместите на форму два текстовых поля и кнопку Private Const MAX_PATH As Long = 260 Private Declare Function lstrlenW Lib "kernel32" _ (ByVal lpString As Long) As Long Private Sub Command1_Click() ' Желаемое число символов в выходной строке Dim chrsDesired As Long Dim buff As String Dim ret As Long chrsDesired = 16 ' Обрезаем путь до указанной длины ' при помощи параметра chrsDesired buff = Space$(MAX_PATH) ret = PathCompactPathEx(buff, Text1.Text, chrsDesired + 1, 0&) ' Выводим полученный текст в текстовом поле Text2.Text = TrimNull(buff) End Sub Private Sub Form_Load() ' Придумываем длинный путь к файлу Text1.Text = "c:\Program Files\" & _ "Russian_Project\" & _ "samples.txt" End Sub Private Function TrimNull(startstr As String) As String TrimNull = Left$(startstr, lstrlenW(StrPtr(startstr))) End Function