15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту




GetTempFileName

Функция GetTempFileName генерирует имя для временного файла.

UINT GetTempFileName(
  LPCTSTR lpPathName,
  LPCTSTR lpPrefixString,
  UINT uUnique,
  LPTSTR lpTempFileName
);

Параметры

lpPathName
[на входе] Указатель на строку (завершающуюся нулём), которая содержит имя директории для файла. Обычно для этого используется либо текущая директория, либо результат функции GetTempPath. Строка не может быть длиннее, чем MAX_PATH-14 символов. Если этот параметр указать NULL, то функция вернёт ошибку.
lpPrefixString
[на входе] Указатель на строку-префикс (завершающуюся нулём). Функция использует первые три символа этой строки как префикс имени файла. Эта строка должна содержать символы в OEM раскладке.
uUnique
[на входе] Беззнаковое целое значение, которое используется для создания имени файла. Более подробно см. Заметки.

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

lpTempFileName
[на выходе] Указатель на буфер, в который будет записано имя временного файла. Эта строка должна содержать символы в OEM раскладке. Этот буфер должен быть размером MAX_PATH, чтобы в него поместился путь плюс нулевой символ.

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

В случае успеха, функция вернёт значение, равное уникальному номеру, который используется в имени временного файла. Если параметр uUnique не равен нулю, то функция вернёт этот самый параметр.

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

Заметки

Функция GetTempFileName генерирует имя временного файла в следующем виде:

 

path\preuuuu.TMP

 

Следующая таблица описывает синтаксис имени файла.

 

Компонент Назначение
path Путь, указанный в параметре lpPathName
pre Первые три буквы строки lpPrefixString
uuuu Шестнадцатиричное значение uUnique


Если завершить работу системы, то временные файлы, имена которых были сгенерированы при помощи этой функции, НЕ будут автоматически удалены.

Чтобы избежать проблем, при конвертации строки ANSI, приложение должно создавать временный файл при помощи функции CreateFile.

 

Пример использования

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

Требования

Windows NT/2000/XP: Присутствует начиная с Windows NT 3.1.
Windows 95/98/Me: Присутствует начиная с Windows 95.
Unicode: Для Windows NT/2000/XP существует как Unicode, так и ANSI версии
Заголовок: Объявлена в Winbase.h; включена в Windows.h.
Библиотека: Kernel32.lib