14 сент. 2010 г.

GetFullPathName

Функция GetFullPathName получает полный путь и имя файла для указанного файла.

DWORD GetFullPathName(
  LPCTSTR lpFileName,
  DWORD nBufferLength,
  LPTSTR lpBuffer,
  LPTSTR* lpFilePart
);

Параметры:
lpFileNameАдрес нульзаканчивающейся строки, которая определяет действительное имя файла.

Эта строка может содержать имя раздела диска.
nBufferLengthРазмер буфера для получения нульзаканчивающейся строки с устройством и путем, в TCHAR.
lpBufferАдрес буфера, который получает нульзаканчивающуюся строку с устройством и путем.
lpFilePartАдрес буфера, который получает адрес имени файла, компонента в пути.

Если lpBuffer указыает на директорию, а не на файл, то lpFilePart получает ноль.

Возвращаемые значения:
Если функция успешна, возвращается длина строки в TCHAR, которая была скопирована в lpBuffer, без учета заканчивающего строку нулевого символа.

Если буфер lpBuffer слишком мал для содержания строки, возвращаемое значение – это нужный размер буфера для сохранения в нем строки, но этот размер не учитывает завершающий строку нулевой символ.

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

GetFullPathName не преобразует указанное имя файла. Если указанное имя файла существует, вы можете использовать GetLongPathName и GetShortPathName для преобразования короткого и длинного имени пути.
Смотрите также:
GetLongPathName, GetShortPathName, GetTempPath, SearchPath