posts - 319, comments - 22, trackbacks - 0, articles - 11
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理
http://hi.baidu.com/xx375/blog/item/52f5ccd6ac7671dd51da4b52.html

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: {文件名需要的缓冲区}

) {指定生成文件名的数字,如果参数30,则返回文件名长度}

应用举例:

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 LonglpBuffer字串的最大长度

返回值

如果函数成功,返回值是缓冲内容副本的长度,但该长度不包含结尾的NULL字符。如果该长度大于给定的长度,则返回值是所需的缓冲大小,且包含结尾的NULL字符。

如果函数失败,返回零值。

备注

应用程序不应该在系统目录内创建文件。如果用户运行在一个共享版本的Windows操作系统上,应用程序是不能访问系统目录的

应用小例:

string str;

UINT size=GetSystemDirectory(NULL,0);

CHAR *path=new CHAR[size];

if (GetSystemDirectory(path,size) != 0)

{

       str = path;

}

delete[] path;




只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理