mfc 创建文件夹并将文件保存路径设置为新建文件夹内

在网上看到很多关于创建文件夹和保存文件的,但是没有组合到一起的。虽然比较简单,还是搞了几天,不过总算搞定了。现将代码贴上:


void CMainFrame::OnCre()  //创建文件夹
{
// TODO: Add your command handler code here
BROWSEINFO bi;
char szPathName[MAX_PATH];
char szTitle[] = "选择路径";
ZeroMemory(&bi, sizeof(BROWSEINFO));

bi.hwndOwner = GetSafeHwnd();
bi.pszDisplayName = szPathName;
bi.lpszTitle = szTitle;
bi.ulFlags = 0x0040 ; 
CString str;
CString strDir;  //选择的目录

LPITEMIDLIST idl = SHBrowseForFolder(&bi);
if(idl == NULL)
{
strDir= "";
return;
}


SHGetPathFromIDList(idl, str.GetBuffer(MAX_PATH * 2));
str.ReleaseBuffer();


BOOL bRet = CreateDirectory(str + _T("\\") + "test_test", NULL);//创建文件夹


m_strPath = str + _T("\\test_test"); //将路径设置到新建的文件夹下


AfxMessageBox(m_strPath);  //弹出消息框显示路径
}


void CMainFrame::OnFileSave() //保存到文件夹下
{
// TODO: Add your command handler code here
const char pszFilter[] = _T("EXE Files (*.txt)|*.txt||");
CFileDialog dlgSave( FALSE,   //FALSE为保存
_T(".txt"), //自动加上的扩展名
_T("Output.txt"),  //默认保存的文件名
OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,pszFilter, this);


      dlgSave.m_ofn.lpstrInitialDir = m_strPath ;  //不管你的文件夹创建在那个位置,保存对话框的路径就在那个位置。


 dlgSave.DoModal();
}

你可能感兴趣的:(mfc,保存文件,创建文件夹)