Функция GetTempPathA (fileapi.h)

Извлекает путь к каталогу, назначенному для временных файлов.

Синтаксис

DWORD GetTempPathA(
  [in]  DWORD nBufferLength,
  [out] LPSTR lpBuffer
);

Параметры

[in] nBufferLength

Размер строкового буфера, определяемого lpBuffer, в TCHARs.

[out] lpBuffer

Указатель на буфер строк, который получает строку, завершающуюся null, задающую путь к временному файлу. Возвращаемая строка заканчивается обратной косой чертой, например C:\TEMP\.

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

Если функция выполняется успешно, возвращаемое значение — это длина строки, скопированной в lpBuffer, в TCHARs, не включая завершающий символ NULL. Если возвращаемое значение больше nBufferLength, возвращаемое значение — это длина буфера, необходимого для хранения пути в TCHARs.

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

Максимально возможное возвращаемое значение — MAX_PATH+1 (261).

Комментарии

Примечание

Приложения должны вызывать GetTempPath2 вместо GetTempPath.

Функция GetTempPath проверяет наличие переменных среды в следующем порядке и использует первый найденный путь:

  1. Путь, заданный переменной среды TMP.
  2. Путь, заданный переменной среды TEMP.
  3. Путь, заданный переменной среды USERPROFILE.
  4. Каталог Windows.
Обратите внимание, что функция не проверяет существование пути и не проверяет, имеет ли текущий процесс какие-либо права доступа к пути. Функция GetTempPath возвращает правильно отформатированную строку, которая задает полный путь на основе порядка поиска переменных среды, как указано ранее. Прежде чем использовать операции ввода-вывода файлов, приложение должно проверить наличие пути и достаточные права доступа к нему.

Поведение символьной ссылки. Если путь указывает на символьную ссылку, имя временного пути сохраняет все символические ссылки.

В Windows 8 и Windows Server 2012 эта функция поддерживается следующими технологиями.

Технология Поддерживается
Протокол SMB 3.0 Да
Прозрачная отработка отказа (TFO) SMB 3.0 Да
SMB 3.0 с масштабируемыми общими папками (SO) Да
Файловая система общего тома кластера (CSVFS) Да
Восстанавливаемая файловая система (ReFS) Да
 

Примеры

Пример см. в статье Создание и использование временного файла.

Примечание

Заголовок fileapi.h определяет GetTempPath как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора UNICODE. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

   
Минимальная версия клиента Windows XP [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2003 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header fileapi.h (включая Windows.h)
Библиотека Kernel32.lib
DLL Kernel32.dll

См. также

Функции управления файлами

GetTempFileName

Символические ссылки