GetTempFileName

【勇芳软件工作室】汉化HomePreviousNext

GetTempFileName函数创建临时文件的名称。文件名是指定路径和前缀字符串的连接,由指定整数形成的十六进制字符串和.TMP扩展名。

指定的整数可以是非零,在这种情况下,函数创建文件名,但不会创建文件。如果为整数指定零,该函数将创建一个唯一的文件名,并在指定的目录中创建该文件。

UINT GetTempFileName(

LPCTSTR 【lpPathName】,//临时文件目录名的地址
LPCTSTR 【lpPrefixString】,//文件名前缀的地址
UINT 【uUnique】,//用于创建临时文件名的数字
LPTSTR 【lpTempFileName】//接收新文件名的缓冲区地址
); 

参数

【lpPathName】

指向指定文件名的目录路径的以null结尾的字符串。该字符串必须由ANSI字符集中的字符组成。应用程序通常为此参数指定句点(。)或GetTempPath函数的结果。如果此参数为NULL,则该函数将失败。

【lpPrefixString】

指向以null结尾的前缀字符串。该函数使用该字符串的前三个字符作为文件名的前缀。该字符串必须由ANSI字符集中的字符组成。

【uUnique】

指定一个无符号整数,该函数将转换为用于创建临时文件名的十六进制字符串。

如果【uUnique】非零,则该函数将十六进制字符串附加到【lpPrefixString】以形成临时文件名。在这种情况下,该函数不会创建指定的文件,并且不会测试该文件名是否唯一。

如果【uUnique】为零,则该函数使用从当前系统时间派生的十六进制字符串。在这种情况下,该函数使用不同的值,直到找到唯一的文件名,然后在【lpPathName】目录中创建该文件。

【lpTempFileName】

指向接收临时文件名的缓冲区。这个以NULL结尾的字符串由ANSI字符集中的字符组成。此缓冲区应至少为MAX_PATH指定的长度(以字节为单位)以容纳路径。

返回值

如果函数成功,则返回值指定临时文件名中使用的唯一数值。如果【uUnique】参数非零,则返回值指定相同的数字。

如果函数失败,返回值为零。要获取扩展错误信息,请调用GetLastError.

备注

GetTempFileName函数创建以下形式的临时文件名:

【路径】\【preuuuu】.TMP

下表描述了文件名语法:

零件含义
【路径】路径由【lpPathName】参数指定
【预】【lpPrefixString】字符串的前三个字母
【YYYYeu】十六进制值【uUnique】

当Windows关闭时,由该函数创建的名称的临时文件不会自动删除。

为避免将ANSI字符集字符串转换为Windows字符串导致的问题,应用程序应调用CreateFile函数创建一个临时文件。

如果【uUnique】参数为零,则GetTempFileName将根据当前系统时间尝试形成唯一的编号。如果具有生成的文件名的文件存在,则该数字增加1,并重复存在的测试。测试继续,直到找到唯一的文件名。GetTempFileName然后根据该名称创建一个文件并关闭它。当【uUnique】非零时,不会尝试创建和打开文件。

也可以看看

CreateFile, GetTempPath