Поделиться через


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

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

Синтаксис

DWORD GetTempPathW(
  [in]  DWORD  nBufferLength,
  [out] LPWSTR lpBuffer
);

Параметры

[in] nBufferLength

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

[out] lpBuffer

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

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

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

Если функция выполняется неудачно, возвращается нулевое значение. Дополнительные сведения об ошибке можно получить, вызвав 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 Да
SMB 3.0 Transparent Failover (TFO) Да
SMB 3.0 с масштабируемыми общими папками (SO) Да
Файловая система общего тома кластера (CSVFS) Да
Восстанавливаемая файловая система (ReFS) Да
 

Примеры

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

Примечание

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

Требования

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

См. также

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

GetTempFileName

Символьные ссылки