MFC 打开文件夹 定位到文件
时间: 2023-08-06 20:02:52 浏览: 217
实验四扫描可控计算机的客户端和服务器端编程设计.docx
可以使用 CFileDialog 类来打开文件对话框,获取用户选择的文件路径。然后可以使用 ShellExecute 函数来打开文件所在的文件夹并选中该文件。
以下是一个示例代码:
```c++
void OpenFolderAndSelectFile(LPCTSTR lpFilePath)
{
// 获取文件路径所在的文件夹路径
CString strFolder = lpFilePath;
int nPos = strFolder.ReverseFind(_T('\\'));
if(nPos != -1)
{
strFolder = strFolder.Left(nPos);
}
// 打开文件夹并选中文件
SHELLEXECUTEINFO ShExecInfo = {0};
ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
ShExecInfo.fMask = SEE_MASK_INVOKEIDLIST;
ShExecInfo.hwnd = AfxGetMainWnd()->m_hWnd;
ShExecInfo.lpVerb = _T("open");
ShExecInfo.lpFile = strFolder;
ShExecInfo.lpParameters = _T("/select, ") + CString(lpFilePath);
ShExecInfo.lpDirectory = NULL;
ShExecInfo.nShow = SW_NORMAL;
ShellExecuteEx(&ShExecInfo);
}
void CMyDlg::OnBtnOpenFile()
{
CFileDialog dlg(TRUE);
if(dlg.DoModal() == IDOK)
{
CString strFilePath = dlg.GetPathName();
OpenFolderAndSelectFile(strFilePath);
}
}
```
在上面的代码中,`OpenFolderAndSelectFile` 函数以文件路径作为参数,获取文件所在的文件夹路径,然后使用 `ShellExecuteEx` 函数打开文件夹并选中该文件。`CMyDlg::OnBtnOpenFile` 函数是响应打开文件按钮的事件,通过 `CFileDialog` 类打开文件对话框,获取用户选择的文件路径,然后调用 `OpenFolderAndSelectFile` 函数打开文件夹并选中该文件。
阅读全文