Функция GetShortPathName


Функция GetShortPathName извлекает короткую форму указанного введенного пути.

Синтаксис

DWORD GetShortPathName(
  LPCTSTR lpszLongPath,  // строка пути с нулем в конце
  LPTSTR lpszShortPath,  // буфер короткой формы
  DWORD cchBuffer        // размер буфера короткой формы
);

Параметры

lpszLongPath

[in] Указатель на  символьную строку пути, законченную нулем. Функция извлекает короткую форму этого пути.

Windows NT/2000/XP:  В версии ANSI этой функции, число символов имени ограничивается числом символов MAX_PATH. Чтобы выйти за пределы этого ограничения до длины равной 32 767 символам, вызовите Unicode версию функции и присоедините спереди пути "\\?\". Подробную информацию см. статье  Именование файлов.

Windows 95/98/Me: Эта строка символов не должна выходить за пределы, числа символов MAX_PATH.

lpszShortPath

[out] Указатель на буфер, который принимает  короткую форму пути с нулем в конце, заданную параметром lpszLongPath.

cchBuffer

[in] Размер буфера, в TCHARs (символах), на который указывает параметр lpszShortPath.

Возвращаемые значения

Если функция завершается успешно, возвращаемое значение - длина символьной строки, скопированной в lpszShortPath, в TCHARs не, включая символ завершения строки (нуль-терминатора).

Если буфер lpszShortPath  является слишком маленьким, чтобы содержать путь, возвращаемое значение - размер буфера, в TCHARs, необходимый, чтобы вместить путь. Поэтому, если возвращаемое значение больше, чем cchBuffer, вызовите функцию снова с буфером, который является достаточно большим, чтобы вместить путь.

Если функция завершается ошибкой по любой другой причине, величина возвращаемого значения - нуль. Чтобы получить дополнительные данные об ошибке, вызовите GetLastError.

Замечания

Когда приложение вызывает эту функцию и задает путь к тому, который не поддерживает псевдоимя 8.3, функция завершается ошибкой  ERROR_INVALID_PARAMETER, если путь длиннее чем 67 байтов.

Путь, заданный параметром lpszLongPath не должен быть полным или длинным путем. Короткая форма может быть более длиннее, чем определяемый путь.

Если заданный путь находится уже в своей  короткой форме, то есть, нет  необходимости в каком- либо преобразовании, то функция просто копирует заданный путь в буфер для короткого пути.

Вы можете установить lpszShortPath в то же самое значение, что и параметр lpszLongPath; другими словами, Вы можете установить буфер короткого пути по адресу введенной символьной строки пути.

Вы можете получить длинное имя файла из короткого  при помощи вызова функции GetLongPathName. Или же, когда функция  GetLongPathName не доступна, Вы можете вызвать FindFirstFile для каждого компонента пути, чтобы получить соответствующее длинное имя.

Windows 95/98/Me: GetShortPathNameW поддерживается программой Microsoft Layer for Unicode. Чтобы использовать ее, Вы должны добавить некоторые файлы к вашему приложению, как изложено в описании Microsoft Layer for Unicode для системы Windows 95/98/Me.

Смотри также 

Статья Именование файловФункции, используемые в управлении файлами, FindFirstFile, GetFullPathName, GetLongPathName, SetFileShortName

Размещение и совместимость GetShortPathName

К

Windows XP

Да 

л

Windows 2000 Professional

Да

и

Windows NT Workstation

Да версии 3.5

е

Windows Me

Да

н

Windows 98

Да

т

Windows 95

Да

 
С

Windows Server 2003

Да

е Windows 2000 Server Да
р Windows NT Server Да версии 3.5 и выше 
в    
е    
р    

Используемая библиотека

Kernel32.lib

Используемая DLL -
 Заголовочный файл  

- объявлено в

Winbase.h

 - включено в

Windows.h

 Unicode

Реализуется как версии Unicode и  ANSI для Windows 2000/XP. Обратите внимание на то, что поддержка в Windows Me/98/95 требует программы Microsoft Layer for Unicode.

 Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz