MFC Vs2015 C++ 复制文件夹下所有文件到另一个文件夹
时间: 2024-10-10 13:16:12 浏览: 66
MFC c++复制文件到指定路径
在MFC (Microsoft Foundation Classes) 的 Visual Studio 2015 中,如果你想要复制一个文件夹及其下的所有文件到另一个文件夹,你可以使用CFile 类以及MFC的目录操作功能。以下是一个简单的示例代码片段,展示了如何遍历文件夹并复制文件:
```cpp
#include <atlbase.h>
#include <atlpath.h>
void CopyFolder(CString sourceFolder, CString destFolder)
{
// 检查源路径是否有效
if (!sourceFolder.IsEmpty() && !PathIsDirectory(sourceFolder))
throw std::runtime_error("Source folder is not valid");
// 创建一个文件夹迭代器
CFindFile finder;
finder.SetDirectory(sourceFolder);
while (finder.FindNext())
{
// 获取当前文件的信息
CString fileName = finder.GetFileName();
if (fileName.Right(1) == L'\\') // 如果遇到的是目录,则跳过
continue;
// 构建完整文件路径和目标路径
CString sourceFilePath = sourceFolder + fileName;
CString destFilePath = destFolder + fileName;
// 创建目录如果不存在
if (!PathExists(destFilePath))
CreateDirectory(destFilePath.Left(destFilePath.GetLength() - 1), NULL); // 删掉尾部'\'
// 执行复制操作
CFileCopy fileCopy;
if (!fileCopy.CopyFile(sourceFilePath, destFilePath))
throw std::runtime_error("Failed to copy file");
}
}
```
这个函数会递归地复制整个文件夹结构。记得要在尝试之前处理可能出现的异常,如路径无效或复制文件失败等情况。
阅读全文