MFC如何操纵后台以资源管理器的方式打开文件夹

来源:互联网 发布:和利时dcs编程软件 编辑:程序博客网 时间:2024/06/08 09:38

     有时候为了在你的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+"\\"; 就变成完整的绝对路径,这样便能打开了。