有时候为了在你的MFC程序中方便浏览某个文件夹,而不要总是在我的电脑那边开始找,这时候我们就可以操纵后台以资源管理器的方式打开文件夹,那么如何做呢?
首先从网上下一份icePubDll.dll文件,然后放进工程的当前目录,然后再调用写语句,代码如下:(我的这些代码是写在某个按钮的响应函数上的,点击那个按钮即可打开你想默认的文件夹)
void DlgInfo::OnBtnOpenFloder()
{
char path[MAX_PATH];
memset(path,0,MAX_PATH);
GetCurrentDirectory(MAX_PATH,path);
typedef int (WINAPI ICEPUB_OPEN)(char *strPath);
ICEPUB_OPEN *icePub_open = 0;
HINSTANCE hDLLDrv = LoadLibrary("icePubDll.dll"); // 还要 下载此dll文件 ,难道没有这种接口???
if(hDLLDrv)
{
icePub_open = (ICEPUB_OPEN *)GetProcAddress(hDLLDrv, "icePub_open");
}
if(icePub_open != NULL)
{
CString strPSNPath =CString(path)+"\\客户端文件管理\\DownLoadFile\\" + m_strAcct+"\\";
icePub_open(strPSNPath.GetBuffer(strPSNPath.GetLength())); // icePub_open的参数只可以是绝对路径
}
if(hDLLDrv)
FreeLibrary(hDLLDrv);
}
要注意的是我试过了icePub_open参数里头填上当前路径,即不是绝对路径则无法打开,但也不会报错就是了。所以才先获得当前路径,即
char path[MAX_PATH];
memset(path,0,MAX_PATH);
GetCurrentDirectory(MAX_PATH,path);
来获得当前目录,然后 CString strPSNPath =CString(path)+"\\客户端文件管理\\DownLoadFile\\" + m_strAcct+"\\"; 就变成完整的绝对路径,这样便能打开了。