今天来介绍两个获取系统文件夹的API函数:
获取Windows文件夹的路径
UINT GetWindowsDirectory(LPTSTR lpBuffer,UINT uSize)
获取systrm32文件夹的路径
UINT GetSystemDirectory(LPTSTR lpBuffer,UINT uSize)
这两个函数的使用方法很简单,和以前一样有两种方法来确定缓冲区的长度:
1、Windows定义了一个文件路径的最长长度的常量MAX_PATH(值为260),我们可以用它来建立字符串缓冲区;
2、给缓冲区传入NULL,调用函数成功后将返回缓冲区的长度。
下面来看例子:
wstring getWindowsDirectory()
{
wstring wstr;
UINT size=GetWindowsDirectory(NULL,0);
wchar_t *path=new wchar_t[size];
if(GetWindowsDirectory(path,size)!=0) //函数调用失败将返回0
{
wstr=path;
}
delete [] path;
return wstr;
}
wstring getSystemDirectory()
{
wstring wstr;
UINT size=GetSystemDirectory(NULL,0);
wchar_t *path=new wchar_t[size];
if(GetSystemDirectory(path,size)!=0)
{
wstr=path;
}
delete [] path;
return wstr;
}