getTempPathA 函数 (fileapi.h)

检索为临时文件指定的目录的路径。

语法

DWORD GetTempPathA(
  [in]  DWORD nBufferLength,
  [out] LPSTR lpBuffer
);

参数

[in] nBufferLength

lpBuffer 标识的字符串缓冲区的大小(以 TCHAR 为单位)。

[out] lpBuffer

指向字符串缓冲区的指针,该缓冲区接收指定临时文件路径的以 null 结尾的字符串。 返回的字符串以反斜杠结尾,例如“C:\TEMP\”。

返回值

如果函数成功,则返回值为复制到 lpBuffer 的字符串的长度(以 TCHAR 为单位),不包括终止 null 字符。 如果返回值大于 nBufferLength,则返回值是保存路径所需的缓冲区的长度( 以 TCHAR 为单位)。

如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。

可能的最大返回值为 MAX_PATH+1 (261) 。

备注

注意

应用应调用 GetTempPath2 而不是 GetTempPath

GetTempPath 函数按以下顺序检查是否存在环境变量,并使用找到的第一个路径:

  1. TMP 环境变量指定的路径。
  2. TEMP 环境变量指定的路径。
  3. USERPROFILE 环境变量指定的路径。
  4. Windows 目录。
请注意,函数不会验证路径是否存在,也不会测试当前进程是否对路径具有任何类型的访问权限。 GetTempPath 函数返回格式正确的字符串,该字符串根据之前指定的环境变量搜索顺序指定完全限定的路径。 在对文件 I/O 操作进行任何使用之前,应用程序应验证路径是否存在和对路径的充分访问权限。

符号链接行为 - 如果路径指向符号链接,则临时路径名称将保留任何符号链接。

在 Windows 8 和 Windows Server 2012 中,此函数由以下技术支持。

技术 支持
服务器消息块 (SMB) 3.0 协议
SMB 3.0 透明故障转移 (TFO)
具有横向扩展文件共享的 SMB 3.0 (SO)
群集共享卷文件系统 (CSV)
弹性文件系统 (ReFS)
 

示例

有关示例,请参阅 创建和使用临时文件

注意

fileapi.h 标头将 GetTempPath 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名的使用与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定

要求

   
最低受支持的客户端 Windows XP [桌面应用 | UWP 应用]
最低受支持的服务器 Windows Server 2003 [桌面应用 | UWP 应用]
目标平台 Windows
标头 fileapi.h (包括 Windows.h)
Library Kernel32.lib
DLL Kernel32.dll

另请参阅

文件管理函数

GetTempFileName

符号链接