win10 操作系统 c++代码如何用 <Windows.h>包拷贝整个文件夹
时间: 2024-05-12 09:19:24 浏览: 71
visual c++如何复制文件夹
5星 · 资源好评率100%
可以使用以下代码来拷贝整个文件夹:
```
#include <Windows.h>
void CopyDirectory(LPCTSTR lpFolderSrc, LPCTSTR lpFolderDest)
{
TCHAR szSrc[MAX_PATH], szDest[MAX_PATH];
WIN32_FIND_DATA FindFileData;
wsprintf(szSrc, TEXT("%s\\*"), lpFolderSrc);
HANDLE hFind = FindFirstFile(szSrc, &FindFileData);
if (hFind == INVALID_HANDLE_VALUE)
{
return;
}
do
{
if (FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
if (_tcscmp(FindFileData.cFileName, TEXT(".")) != 0 &&
_tcscmp(FindFileData.cFileName, TEXT("..")) != 0)
{
wsprintf(szSrc, TEXT("%s\\%s"), lpFolderSrc, FindFileData.cFileName);
wsprintf(szDest, TEXT("%s\\%s"), lpFolderDest, FindFileData.cFileName);
CreateDirectory(szDest, NULL);
CopyDirectory(szSrc, szDest);
}
}
else
{
wsprintf(szSrc, TEXT("%s\\%s"), lpFolderSrc, FindFileData.cFileName);
wsprintf(szDest, TEXT("%s\\%s"), lpFolderDest, FindFileData.cFileName);
CopyFile(szSrc, szDest, FALSE);
}
} while (FindNextFile(hFind, &FindFileData));
FindClose(hFind);
}
```
在调用函数时,将源文件夹路径和目标文件夹路径作为参数传入:
```
CopyDirectory(TEXT("C:\\Folder1"), TEXT("C:\\Folder2"));
```
这将会拷贝“C:\Folder1”文件夹及其所有子文件夹和文件到“C:\Folder2”。
阅读全文