TCHAR chPath[255]; //用来存储路径的字符串
CString strPath     = "";
BROWSEINFO bInfo;
GetModuleFileName(NULL,chPath,MAX_PATH);
strPath             =chPath;
ZeroMemory(&bInfo, sizeof(bInfo));
bInfo.hwndOwner     = m_hWnd;
bInfo.lpszTitle     = _T("请选择路径: ");     
bInfo.ulFlags       = BIF_RETURNONLYFSDIRS|BIF_EDITBOX;
bInfo.lParam        = (LPARAM)strPath.GetBuffer(strPath.GetLength()); LPITEMIDLIST lpDlist; //用来保存返回信息的IDList
lpDlist = SHBrowseForFolder(&bInfo) ; //显示选择对话框
if(lpDlist != NULL) //用户按了确定按钮
{
SHGetPathFromIDList(lpDlist, chPath);//把项目标识列表转化成字符串
strPath = chPath; //将TCHAR类型的字符串转换为CString类型的字符串
UpdateData(FALSE);
}      
可是这个保存文件有个问题,不能更改文件名,我想保存的时候,自己给文件重新命名,请求高手指点。