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


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

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

Синтаксис

DWORD GetTempPath2A(
  [in]  DWORD BufferLength,
  [out] LPSTR Buffer
);

Параметры

[in] BufferLength

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

[out] Buffer

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

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

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

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

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

Замечания

При вызове этой функции из процесса, запущенного как SYSTEM, он вернет путь C:\Windows\SystemTemp, недоступный для процессов, отличных от СИСТЕМЫ. Для процессов, отличных от СИСТЕМЫ, GetTempPath2 будет вести себя так же, как GetTempPath.

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

  1. Путь, указанный переменной среды TMP.
  2. Путь, указанный переменной среды TEMP.
  3. Путь, указанный переменной среды USERPROFILE.
  4. Каталог Windows.

Обратите внимание, что функция не проверяет, существует ли путь, и не проверяет, имеет ли текущий процесс какие-либо права доступа к пути. Функция GetTempPath2 возвращает правильно отформатированную строку, указывающую полный путь на основе порядка поиска переменной среды, как указано ранее. Приложение должно проверить наличие пути и надлежащих прав доступа к пути до любого использования операций ввода-вывода файлов.

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

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

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

Примеры

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

Заметка

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Сборка Windows 11 22000
минимальный поддерживаемый сервер Windows Server Build 20348
заголовка fileapi.h (включая Windows.h)
библиотеки Kernel32.lib
DLL Kernel32.dll

См. также

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

GetTempFileName

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