GetTempPath函数 功能 获取为临时文件指定的路径 API中函数原形为: DWORD GetTempPath(DWORD nBufferLength, LPTSTR lpBuffer) 参数: StrLen = GetTempPath(NAME_LEN, OutPath) 其中: OutPath:是输出临时文件夹名称的变量,它的初始值为NAME_LEN个空格,函数调用后,就不是空格了,它会把取得的临时文件夹名称存入此变量。 NAME_LEN:是告诉函数OutPath变量的长度。 StrLen:是取得的临时文件夹名称的长度。 返回值 Long,装载到lpBuffer的字符数。如当前缓冲区的长度不够,不能容下整个路径,则返回lpBuffer需要的长度。 零表示失败。会设置GetLastError 应用小例: CHAR OutPath[MAX_PATH]; int StrLen = GetTempPath(MAX_PATH, OutPath); printf("输出临时文件夹名称 = %s\n",OutPath); printf("临时文件夹名称的长度= 0x%x\n",StrLen); //输出临时文件夹名称 = C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\ (环境变量里有) //临时文件夹名称的长度= 0x23 注解临时路径是由TMP环境变量指定的一个路径。如TMP不存在,则是由TEMP环境变量指定的路径。 如果这两个环境变量都不存在,就是当前目录 如果查看当前用户的临时文件夹,可以在开始-运行里面输入%temp%,回车即可(一般为隐藏的)
GetTempFileName函数 这个函数包含了一个临时文件的名字,它可由应用程序使用 UINT GetTempFileName( PChar lpPathName:; {路径} PChar lpPrefixString:; {前缀} UINT uUnique:; {指定生成文件名的数字,文件名将根据参数2、参数3来生成} PChar lpTempFileName: {文件名需要的缓冲区} ) {指定生成文件名的数字,如果参数3是0,则返回文件名长度} 应用举例: CHAR OutPath[MAX_PATH]; int StrLen = GetTempPath(MAX_PATH, OutPath); CHAR Name[100]; GetTempFileNameA(OutPath,"~xx",16,Name); printf("自定义唯一临时文件夹名称 = %s\n",Name); //因为16的十六进制是10,文件名会是: ~xx10.tmp //Name = C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\~xx10.tmp
GetWindowsDirectory函数与GetSystemDirectory函数用法一样 GetWindowsDirectory是获取Windows文件夹的路径。GetSystemDirectory是获取systrm32文件夹的路径 下面是讲解GetSystemDirectory函数 GetSystemDirectory 函数 获取systrm32文件夹的路径。系统文件夹包含了诸如动态链接库和驱动的系统文件。 该函数最初是为了兼容问题而提供的。应用程序应该在Program File文件夹内存储代码和常驻数据。 UINT WINAPI GetSystemDirectory( __out LPTSTR lpBuffer, __in UINT uSize ); 参数 lpBuffer String,用于装载系统目录路径名的一个字串缓冲区。它应事先初始化成“路径”字符串的长度+1。 通常至少要为这个缓冲区分配MAX_PATH个字符的长度 nSize Long,lpBuffer字串的最大长度 返回值 如果函数成功,返回值是缓冲内容副本的长度,但该长度不包含结尾的NULL字符。如果该长度大于给定的长度,则返回值是所需的缓冲大小,且包含结尾的NULL字符。 如果函数失败,返回零值。 备注 应用程序不应该在系统目录内创建文件。如果用户运行在一个共享版本的Windows操作系统上,应用程序是不能访问系统目录的 应用小例: string str; UINT size=GetSystemDirectory(NULL,0); CHAR *path=new CHAR[size]; if (GetSystemDirectory(path,size) != 0) { str = path; } delete[] path; |
![](http://img.e-com-net.com/image/product/a63522da4aef4814a68219707db1e92a.gif)