Функция GetTempFileName


Функция 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.

 Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz