mfc获取当前文件夹并创建子文件夹
时间: 2024-09-17 14:01:22 浏览: 35
在MFC(Microsoft Foundation Classes)中,你可以使用CFileFind和CMulti threaded Dialogs (MDI) 来获取当前工作目录,并通过CFileDialog或者SHCreateDirectory函数来创建子文件夹。以下是一个简单的步骤示例:
1. **获取当前工作目录**:
- 首先,你需要创建一个CFileFind实例,然后设置搜索模式为CFindFile::fnCurrentDir(查找当前目录)。
```cpp
CFileFind finder;
if (finder.FindFile(_T("."))) { // _T(".") 表示当前目录
CString currentFolder = finder.GetFilePath(); // 获取当前路径
}
```
2. **创建子文件夹**:
- 使用`SHCreateDirectory`函数可以异步创建文件夹,例如:
```cpp
SHRESULT result = SHCreateDirectoryEx(NULL, currentFolder + "\\new_folder", NULL); // "new_folder"是你想创建的子文件夹名
```
如果需要处理结果,可以检查`result`,通常0表示成功。
3. **错误处理**:
- 创建文件夹可能会失败,所以通常会添加适当的错误检查和处理代码。
```cpp
if (SUCCEEDED(result)) {
AfxMessageBox(_T("Folder created successfully!"));
} else {
DWORD errorCode = GetLastError();
AfxMessageBox(_T("Failed to create folder. Error code: ") + FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, errorCode, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), L"", 0, NULL));
}
```
阅读全文