MFC C++ 复制文件夹下所有文件或者 文件和文件夹 到另一个文件夹

本文提供两种C++代码实现方法,用于复制文件夹下的所有文件至另一位置。第一种方法通过遍历源文件夹并逐个复制文件,第二种方法利用SHFileOperation进行高效批量复制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

   直接上代码:

   1,复制文件夹下所有文件 到另外一个文件夹:

   

void CopyAllFile(CString dest, CString source)
{
	CFileFind filefind;
	CString path = source;
	if (path.Right(1) != "\\")//目录的最右边需要“\”字符
		path += "\\";
	path += "*.*";
	BOOL res = filefind.FindFile(path);
	while (res)
	{
		res = filefind.FindNextFile();
		if (!filefind.IsDirectory() && !filefind.IsDots())
		{
			CopyFile(filefind.GetFilePath(), dest + filefind.GetFileName(),FALSE);
		}
	}

	filefind.Close();
}

 

  2,复制文件夹下所有到另外一个文件:

   

int CopyDiretor(CString dest, CString source)
{
	SHFILEOPSTRUCT  sfo;//结构体
	char szSource[MAX_PATH];
	char szDest[MAX_PATH];
	lstrcpy(szSource, source);//源目录
	lstrcpy(szDest, dest);//目的目录
	szSource[lstrlen(szSource) + 1] = 0;
	szDest[lstrlen(szDest) + 1] = 0;
	sfo.hwnd = NULL;//窗口指针
	sfo.wFunc = FO_COPY;//操作类型为复制
	sfo.pFrom = (LPCSTR)szSource;//源目录
	sfo.pTo = (LPCSTR)szDest;//目的目录
	sfo.fFlags = FOF_NOCONFIRMATION |		//对所有复制过程中可能弹出的对话框采用“全是”选项
		FOF_SIMPLEPROGRESS |		//使用进度条
		FOF_NOCONFIRMMKDIR;		//不自动创建新目录
	sfo.hNameMappings = 0;
	sfo.lpszProgressTitle = "Copy file";//进度条的标题

	if (SHFileOperation(&sfo) == 0)			//拷贝成功,SHFileOperation返回0
		//AfxMessageBox("成功完成拷贝!");
		return 0;
	else
		//	AfxMessageBox("拷贝出错");
		return 1;
}

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值