Функция GetTempFileName

Declare Function GetTempFileName Lib "kernel32" Alias "GetTempFileNameA" (ByVal lpszPath As String, _
    ByVal lpPrefixString As String, _
    ByVal wUnique As Long, _
    ByVal lpTempFileName As String) As Long

GetTempFileName создает имя для временного файла для использования вашим приложением. Кстати, функция может создать только имя файла без создания самого файла. Имя файла включает в себя весь полный путь и содержится в lpTempFileName. Формат создаваемого файла путь\preuuuu.tmp, где pre - первые три символа имени файла, а uuu - шестнадцатиричное число между 0000 and FFFF, присоединяемое к этим символам

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

В успешном случае функция возвращает число uuuu, использовавшее при создании имени файла. В случае ошибки возвращается 0 (используйте GetLastError для получения кода ошибки)

Параметры

lpszPath
Папка, в котором будет создан временный файл. Обычно, для этих целей используют специальную временную папку, для хранения подобных файлов (как правила C:\Windows\Temp). Используйте функцию GetTempPath
lpPrefixString
Префикс имени файла. Берутся первые три символа для имени файла
wUnique
Если параметр отличен от 0, то это число, присоединяемое к префиксу и файл не создается. В этом случае Windows не проверяет, является ли имя файла уникальным. Если параметр равен 0,то число генерируется системой и создается файл
lpTempFileName
Буфер, содержащий имя созданного файла

Пример

' Создадим временный файл вида (path)\rusuuu.TMP,
' где (path) -это папка Windows,
' а uuuu - число, созданное функцией

Dim temppath As String  ' имя папки
Dim tempfile As String  ' имя файла
Dim slength As Long  ' длина пути
Dim lastfour As Long  ' hex-значение для uuuu

' Используем Windows, как временную папку
' Создадим буфер для хранения имени папки
temppath = Space(255)
slength = GetTempPath(255, temppath)
temppath = Left(temppath, slength)

' Создаем файл
' Создадим буфер для имени файла
tempfile = Space(255)
lastfour = GetTempFileName(temppath, "rus", 0, tempfile)
tempfile = Left(tempfile, InStr(tempfile, vbNullChar) - 1)
Debug.Print "Имя временного файла: "; tempfile

Смотри также

GetTempPath

Категория

Файлы