Функция PathCompactPathEx

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

Параметры

pszOut
Измененная строка
pszSrc
Имя файла для модификации. Максимальная длина строки равна MAX_PATH
cchMax
Число символов для отображения новой строки, включая завершающий нулевой символ
dwFlags
Зарезервировано. Установите равным 0

Пример

' Сжимаем длинное имя файла
' Поместите на форму два текстовых поля и кнопку
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

Категория

Shlwapi