Функция GetLongPathName

Функция GetLongPathName преобразует указанный путь в его длинную форму. Если длинный путь не найден, эта функция просто возвращает указанное имя.

Синтаксис

DWORD GetLongPathName(
  LPCTSTR lpszShortPath, // имя файла
  LPTSTR lpszLongPath,   // буфер пути
  DWORD cchBuffer        // размер буфера пути
);

Параметры

lpszShortPath

[in] Указатель на преобразуемый путь с нулем завершения строки в конце.

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

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

lpszLongPath

[out] Указатель на буфер, который принимает длинный путь. Вы можете использовать тот же самый  буфер, который Вы использовали для параметра lpszShortPath.

cchBuffer

[in] Размер буфера, в TCHARs (символах).

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

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

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

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

Замечания

Во многих файловых системах, короткое имя файла содержит символ тильды (~). Однако, не все файловые системы следуют этому соглашению. Поэтому, не обольщайтесь тем, что Вы можете пропустить вызов функции GetLongPathName, если путь не содержит символ тильды.

Windows NT и Windows 95:  Включите дополнительный заголовочный файл по имени NewAPIs.h, чтобы сделать функцию GetLongPathName доступной для этих операционных систем. Эта функция самостоятельно не  выполняется, а при помощи оболочки, которая использует другие родные функции в этих системах. Детали использования директив предпроцессора, которые делают эту функцию доступной, см. в заголовочном файле.  Если у вас нет этого заголовочного файла, он может быть получен, путем загрузки самого последнего SDK из Сайта обновления SDK (SDK Update Site).

Смотри также 

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

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

К

Windows XP

Да 

л

Windows 2000 Professional

Да

и

Windows NT

Нет

е

Windows Me

Да

н

Windows 98

Да

т

Windows 95

Нет

 
С

Windows Server 2003

Да

е Windows 2000 Server Да
р Windows NT Server Нет 
в    
е    
р    

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

Kernel32.lib

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

- объявлено в

Winbase.h

 - включено в

Windows.h

 Unicode

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

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

Не имеется

 

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

Hosted by uCoz