14 сент. 2010 г.

GetTempFileName

Функция GetTempFileName создает имя для временного файла. Если генерируется уникальное имя файла, создается пустой файл и его дескриптор освобождается; иначе, генерируется только имя файла.

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

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

Возвращаемые значения:
Если функция удачна, возвращаемое значение определяет уникальное числовое значение, использованное в имени временнего файла.
При ошибке возвращается ноль. Для получения дополнительной информации об ошибке, вызывайте GetLastError.
Замечания:
Функция GetTempFileName создает имя временнго файла в следующей форме:

\
.TMP

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


Компонент:
Описание:
Путь, указанный в параметре lpPathName

Первые три буквы строки lpPrefixString
Шестнадцатиричное значение uUnique
Если uUnique равен нулю, GetTempFileName создает пустой файл и закрывает его. Если uUnique не равен нулю, вы должны сами создать файл. Создается только имя файла, потому что GetTempFileName не гарантирует уникальность файлового имени.
Когда система завершает свою работу, временные файлы, созданные по имени этой функцией, не удаляются автоматически.
Смотрите также: