C++复制文件夹
时间: 2023-07-28 08:06:36 浏览: 120
visual c++如何复制文件夹
5星 · 资源好评率100%
在C++中,复制文件夹的一种常见方法是使用递归函数来复制文件夹及其内容。
首先,需要使用`CreateDirectory()`函数创建新的目标文件夹。然后,使用`FindFirstFile()`和`FindNextFile()`函数遍历源文件夹中的所有文件和子文件夹。对于每个文件或文件夹,使用`CopyFile()`函数复制文件或递归复制子文件夹。
下面是一个简单的例子:
```c++
#include <windows.h>
#include <iostream>
#include <string>
using namespace std;
void CopyFolder(string sourceFolder, string destinationFolder)
{
CreateDirectory(destinationFolder.c_str(), NULL);
WIN32_FIND_DATA fileInfo;
HANDLE hFind;
string sourcePath = sourceFolder + "\\*.*";
hFind = FindFirstFile(sourcePath.c_str(), &fileInfo);
if (hFind != INVALID_HANDLE_VALUE)
{
do
{
if (fileInfo.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
if (strcmp(fileInfo.cFileName, ".") != 0 && strcmp(fileInfo.cFileName, "..") != 0)
{
string newSourceFolder = sourceFolder + "\\" + fileInfo.cFileName;
string newDestinationFolder = destinationFolder + "\\" + fileInfo.cFileName;
CopyFolder(newSourceFolder, newDestinationFolder);
}
}
else
{
string sourceFile = sourceFolder + "\\" + fileInfo.cFileName;
string destinationFile = destinationFolder + "\\" + fileInfo.cFileName;
CopyFile(sourceFile.c_str(), destinationFile.c_str(), FALSE);
}
} while (FindNextFile(hFind, &fileInfo));
FindClose(hFind);
}
}
int main()
{
string sourceFolder = "C:\\sourceFolder";
string destinationFolder = "C:\\destinationFolder";
CopyFolder(sourceFolder, destinationFolder);
return 0;
}
```
请注意,这只是一个简单的示例,可能需要适当修改以适应您的具体需求。
阅读全文