MFC4类文件操作对话框
一:文件夹选择
均测试通过
void FileDlg::OnBnClickedBt1()
{
char szPath[MAX_PATH]; //存放选择的目录路径
CString str;
ZeroMemory(szPath, sizeof(szPath));
BROWSEINFO bi;
bi.hwndOwner = m_hWnd;
bi.pidlRoot = NULL;
bi.pszDisplayName = szPath;
bi.lpszTitle = "请选择目录:";
bi.ulFlags = 0;
bi.lpfn = NULL;
bi.lParam = 0;
bi.iImage = 0;
//弹出选择目录对话框
LPITEMIDLIST lp = SHBrowseForFolder(&bi);
if(lp && SHGetPathFromIDList(lp, szPath))
{
str.Format("选择的目录为 %s", szPath);
AfxMessageBox(str);
}
else
AfxMessageBox("无效目录");
}
二:文件选择
void FileDlg::OnBnClickedBt2()
{
CStringA strFile = "";
CFileDialog dlgFile(TRUE, NULL, NULL, OFN_HIDEREADONLY, _T("Describe Files (*.xml)|*.xml"), NULL);
if (dlgFile.DoModal())
{
strFile = dlgFile.GetPathName();
}
MessageBoxA(NULL, strFile, "模板参数加载", IDOK);
}
三:文件保存
void FileDlg::OnBnClickedBt3()
{
BOOL isOpen = FALSE; //是否打开(否则为保存)
CString defaultDir = "E:\\FileTest"; //默认打开的文件路径
CString fileName = "test.xml"; //默认打开的文件名
CString filter = "文件 (*.xml)|*.xml||"; //文件过虑的类型
CFileDialog openFileDlg(isOpen, defaultDir, fileName, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, filter, NULL);
openFileDlg.GetOFN().lpstrInitialDir = "E:\\FileTest\\test.doc";
INT_PTR result = openFileDlg.DoModal();
CString filePath = defaultDir + "\\" + fileName;
if(result == IDOK) {
filePath = openFileDlg.GetPathName();
}
std::stringstream ss;
ss << filePath;
std::string s;
ss >> s;
MessageBox(filePath, "模板参数保存");
mPA.saveParams(s);
}
四:文件选择
void FileDlg::OnBnClickedBt4()
{
BOOL isOpen = TRUE; //是否打开(否则为保存)
CString defaultDir = "E:\\FileTest"; //默认打开的文件路径
CString fileName = ""; //默认打开的文件名
CString filter = "文件 (*.xml)|*.xml||"; //文件过虑的类型
CFileDialog openFileDlg(isOpen, defaultDir, fileName, OFN_HIDEREADONLY|OFN_READONLY, filter, NULL);
openFileDlg.GetOFN().lpstrInitialDir = "E:\\FileTest\\test.doc";
INT_PTR result = openFileDlg.DoModal();
CString filePath = defaultDir + "\\test.doc";
if(result == IDOK) {
filePath = openFileDlg.GetPathName();
}
std::stringstream ss;
ss << filePath;
std::string s;
ss >> s;
MessageBox(filePath, "模板参数加载");
}