mfc 获取当前文件夹路径
时间: 2023-08-19 21:04:55 浏览: 105
您可以使用 MFC 中的 GetCurrentDirectory 函数来获取当前应用程序的工作目录:
```c++
TCHAR szPath[MAX_PATH];
::GetCurrentDirectory(MAX_PATH, szPath);
CString strPath(szPath);
```
这样,strPath 就是当前应用程序的工作目录。如果您想要获取当前可执行文件所在的路径,可以使用 GetModuleFileName 函数,具体可以参考我在上一个问题中的回答。
相关问题
mfc 获取文件夹路径‘
要获取 MFC 应用程序中的文件夹路径,可以使用 CFileDialog 类或 SHBrowseForFolder 函数,具体步骤如下:
1. 使用 CFileDialog 类选择文件夹路径。
例如,可以使用 CFileDialog::DoModal() 函数弹出对话框,让用户选择文件夹路径,然后将该路径保存到一个 CString 类型的变量中。
```c++
CFileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, _T("Folder|*.*||"), NULL);
if (dlg.DoModal() == IDOK) {
CString folderPath = dlg.GetPathName();
}
```
注意:这里的对话框类型为 TRUE,表示选择的是文件夹路径,而不是文件路径。
2. 使用 SHBrowseForFolder 函数选择文件夹路径。
例如,可以使用以下代码弹出对话框,让用户选择文件夹路径,然后将该路径保存到一个 CString 类型的变量中。
```c++
BROWSEINFO bi = { 0 };
bi.lpszTitle = _T("Select Folder");
LPITEMIDLIST pidl = SHBrowseForFolder(&bi);
if (pidl != NULL) {
TCHAR path[MAX_PATH];
if (SHGetPathFromIDList(pidl, path)) {
CString folderPath = path;
}
CoTaskMemFree(pidl);
}
```
注意:这里使用了 SHGetPathFromIDList 函数将 LPITEMIDLIST 类型的 IDList 转换为字符串类型的文件夹路径。
需要添加头文件 `#include <ShlObj.h>`。
mfc 获取当前文件路径
您可以使用 MFC 中的 GetCurrentDirectory 函数来获取当前应用程序的工作目录,然后使用 GetModuleFileName 函数获取当前可执行文件的路径:
```c++
TCHAR szPath[MAX_PATH];
::GetCurrentDirectory(MAX_PATH, szPath);
::GetModuleFileName(NULL, szPath, MAX_PATH);
CString strPath(szPath);
CString strFilePath = strPath.Left(strPath.ReverseFind('\\'));
```
这样,strFilePath 就是当前可执行文件所在的路径。