Функция GetLongPathNameA (fileapi.h)
Преобразует указанный путь в длинную форму.
Чтобы выполнить эту операцию как транзакцию, используйте функцию GetLongPathNameTransacted.
Дополнительные сведения о именах файлов и путей см. в именовании файлов, путей и пространств имен.
Синтаксис
DWORD GetLongPathNameA(
[in] LPCSTR lpszShortPath,
[out] LPSTR lpszLongPath,
[in] DWORD cchBuffer
);
Параметры
[in] lpszShortPath
Путь для преобразования.
[out] lpszLongPath
Указатель на буфер для получения длинного пути.
Вы можете использовать тот же буфер, который использовался для параметра lpszShortPath.
[in] cchBuffer
Размер буфера lpszLongPath указывает на TCHARs.
Возвращаемое значение
Если функция выполнена успешно, возвращаемое значение имеет длину в TCHARs, строки, скопированной в lpszLongPath, не включая завершающийся символ NULL.
Если буфер
Если функция завершается ошибкой по какой-либо другой причине, например, если файл не существует, возвращаемое значение равно нулю. Чтобы получить расширенные сведения об ошибке, вызовите GetLastError.
Замечания
Во многих файловых системах короткое имя файла содержит символ тильды (~). Однако не все файловые системы следуют этому соглашению. Поэтому не предполагается, что можно пропустить вызов GetLongPathName, если путь не содержит символ тильды (~).
Если файл или каталог существует, но длинный путь не найден, GetLongPathName успешно, скопировав строку, указанную параметром lpszShortPath буфер, на который ссылается параметр lpszLongPath.
Если возвращаемое значение больше значения, указанного в cchBuffer, можно снова вызвать функцию с буфером, который достаточно велик для хранения пути. Пример этого дела см. в разделе "Пример кода" для GetFullPathName.
В Windows 8 и Windows Server 2012 эта функция поддерживается следующими технологиями.
Технологии | Поддержанный |
---|---|
Протокол SMB 3.0 | Да |
Отработка отказа SMB 3.0 (TFO) | Да |
SMB 3.0 с масштабируемыми общими папками (SO) | Да |
Файловая система общего тома кластера (CSVFS) | Да |
Отказоустойчивая файловая система (ReFS) | Да |
Примеры
Пример использования GetLongPathNameсм. в разделе "Пример кода" для GetFullPathName.
Заметка
Заголовок fileapi.h определяет GetLongPathName как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows XP [классические приложения | Приложения UWP] |
минимальный поддерживаемый сервер | Windows Server 2003 [классические приложения | Приложения UWP] |
целевая платформа | Виндоус |
заголовка | fileapi.h (включая Windows.h) |
библиотеки |
Kernel32.lib |
DLL | Kernel32.dll |