Функция GetTempFileName создает имя временного файла. Если генерируется уникальное имя файла, то создается пустой файл и дескриптор, который ссылается на него; в противном случае создается только имя файла.
Синтаксис
UINT GetTempFileName( LPCTSTR lpPathName, // имя каталога LPCTSTR lpPrefixString, // префикс имени файла UINT uUnique, // целое число LPTSTR lpTempFileName // буфер имени файла ); |
lpPathName
[in] Указатель на символьную строку с нулем в конце, которая определяет путь к каталогу для имени файла. Приложения обычно устанавливают для текущего каталога точку (.) или результат функции GetTempPath. Строка не может быть более длиннее, чем значение MAX_PATH -14символов. Если этот параметр - ПУСТО (NULL), функция завершается ошибкой.lpPrefixString
[in] Указатель на законченную нулем префиксную символьную строку. Функция использует первые три символа этой строки как префикс имени файла. Эта символьная строка должна состоять из символов установленного набора OEM.uUnique
[in] Целое число без знака, которое используется в создании имени временного файла.Если параметр uUnique равняется нулю, функция пытается сформировать уникальное имя файла, используя текущее системное время. Если файл уже существует, число увеличивается на единицу, а функция проверяет, не существует ли еще такой файл. Это продолжается до тех пор, пока не найдется уникальное имя файла; функция создает файл этим именем и закрывает его.
Обратите внимание! на то, что функция не пытается проверять уникальность имени файла, когда uUnique не нуль. |
lpTempFileName
[out] Указатель на буфер, который принимает имя временного файла. Эта символьная строка с нулем в конце состоит из символов установленного набора OEM. Этот буфер должен быть длиной MAX_PATH символов, чтобы разместить путь, плюс символ конца строки (нуль-терминатор).Возвращаемые значения
Если функция завершается успешно, возвращаемое значение устанавливает уникальное числовое значение, используемое в названии временного файла. Если параметр uUnique не нуль, возвращаемое значение устанавливает это же самое число.
Если функция завершается ошибкой, величина возвращаемого значения - нуль. Чтобы получить дополнительные сведения об ошибке, вызовите GetLastError.
Замечания
Функция GetTempFileName создает имя временного файла нижеследующего вида:
<path>\<pre><uuuu>.TMP |
Таблица ниже описывает синтаксис имени файла.
Компонент | Предназначение |
---|---|
<path> | Путь, определенный параметром lpPathName. |
<pre> | Первые три символа символьной строки lpPrefixString. |
<uuuu> | Шестнадцатеричное значение uUnique. |
Если uUnique равняется нулю, GetTempFileName создает пустой файл и закрывает его. Если uUnique не является нулевым, Вы должны создать файл самостоятельно. Создается только имя файла, потому что функция GetTempFileName не способна гарантировать, что имя файла будет уникальным. Когда система закрывается, временные файлы, имена которых были созданы этой функцией, автоматически не удаляются.
Чтобы избежать получающихся проблем при преобразование символьной строки ANSI, приложение должно вызвать функцию CreateFile, чтобы создать временный файл.
Код примера
Пример смотри в статье Создание и использование временных файлов.
Смотри также
Обзор Управление файлами, Функции, используемые в управлении файлами, CreateFile, GetTempPath
Размещение и совместимость GetTempFileName |
||
К |
Windows XP |
Да |
л |
Windows 2000 Professional |
Да |
и |
Windows NT Workstation |
Да |
е |
Windows Me |
Да |
н |
Windows 98 |
Да |
т |
Windows 95 |
Да |
С |
Windows Server 2003 |
Да |
е | Windows 2000 Server | Да |
р | Windows NT Server | Да |
в | ||
е | ||
р | ||
Используемая библиотека |
Kernel32.lib |
|
Используемая DLL | - | |
Заголовочный файл | ||
- объявлено в |
Winbase.h |
|
- включено в |
Windows.h |
|
Unicode |
Реализуется как версии Unicode и ANSI для Windows 2000/XP. Обратите внимание на то, что поддержка в Windows Me/98/95 требует программы Microsoft Layer for Unicode. |
|
Замечания по платформе |
Не имеется |