- void OnXXXBrowse()
- {
- CString strFolderPath;
- BROWSEINFO broInfo = {0};
- TCHAR szDisName[MAX_PATH] = {0};
-
- broInfo.hwndOwner = this->m_hWnd;
- broInfo.pidlRoot = NULL;
- broInfo.pszDisplayName = szDisName;
- broInfo.lpszTitle = _T(“选择保存路径”);
- broInfo.ulFlags = BIF_NEWDIALOGSTYLE | BIF_DONTGOBELOWDOMAIN
- | BIF_BROWSEFORCOMPUTER | BIF_RETURNONLYFSDIRS | BIF_RETURNFSANCESTORS;
- broInfo.lpfn = NULL;
- broInfo.lParam = NULL;
- broInfo.iImage = IDR_MAINFRAME;
- LPITEMIDLIST pIDList = SHBrowseForFolder(&broInfo);
- if (pIDList != NULL)
- {
- memset(szDisName, 0, sizeof(szDisName));
- SHGetPathFromIDList(pIDList, szDisName);
- strFolderPath = szDisName;
- }
- }
浏览保存文件
[cpp] view plain copy
1. void BrowseSaveFile()
2. {
3. LPCTSTR szFilter = _T(“puk files(.puk)|.puk||”);
4.
5. // CFileDialog的第一个参数标明是浏览还是保存
6. CFileDialog dlg(TRUE, NULL, NULL, OFN_FILEMUSTEXIST | OFN_HIDEREADONLY, szFilter);
7. if (dlg.DoModal() == IDOK)
8. {
9. CString fileName = dlg.GetPathName();
10. }
11. }
获取当前路径
[cpp] view plain copy
1. void GetCurPath()
2. {
3. CString strCurPath; // 不包含文件名的全路径
4. GetModuleFileName(NULL, strCurPath.GetBufferSetLength(MAX_PATH + 1), MAX_PATH);
5. strCurPath.ReleaseBuffer();
6. int nPos = strCurPath.ReverseFind(‘\’);
7. strCurPath = strCurPath.Left(nPos + 1);
8. }
本文介绍使用MFC进行文件及文件夹的浏览操作,包括如何通过对话框选择保存路径、浏览并保存文件以及获取当前路径的方法。这些实用代码片段能够帮助开发者快速实现文件管理和路径选择的功能。


被折叠的 条评论
为什么被折叠?



