MFC文件夹的复制

编程时碰到了一个文件夹复制的问题,需要拷贝文件夹下的所有文件夹(如果有)和文件(所有类型),总结了一种用递归的方法来实现查找文件夹下的所有文件并复制,在MFC中实非常简单。具体过程为:新建一个对话框的程序,工程名为:Copyfolder添加两个静态控件,caption改为原路径和目标路径,再添加两个与之对应的文本编辑框,修改ID,关联两个成员变量:

CString m_strSrc;//原路径

CString m_strDst;//目标路径

添加一个成员函数:

void CCopyfolderDlg::CopyDirectory(CString source, CString target)
{
	 CreateDirectory(target,NULL); //获取目标拷贝的路径 拷贝至哪里
	CFileFind finder;  
    CString path=source+_T("\\*.*"); //需要拷贝的文件的路径
   // AfxMessageBox(path);  //调试用
    bool bWorking = finder.FindFile(path);  //是否找到了需要拷贝的文件的路径
    while(bWorking){  
        bWorking = finder.FindNextFile();  
        //AfxMessageBox(finder.GetFileName());  //调试用
        if(finder.IsDirectory() && !finder.IsDots()){ //是不是有效的文件夹
            CopyDirectory(finder.GetFilePath(),target+_T("\\")+finder.GetFileName()); //递归查找文件夹
			}  
        else{ //是文件则直接复制 
            CopyFile(finder.GetFilePath(),target+_T("\\")+finder.GetFileName(),FALSE);  //拷贝文件夹下的所有文件
        }  
    }  
}

最后在给确定按钮添加消息响应函数,在这个函数中调用即可:

void CCopyfolderDlg::OnBnClickedOk()
{
	UpdateData(true);//两个路径获取值
	CopyDirectory(m_strSrc,m_strDst);
	AfxMessageBox(_T("复制成功!"));
	OnOK();
}

生成的界面如下图所示:


以上即为在MFC中实现文件夹拷贝的全过程。后续再遇到了其他的实现方法在做补充!





  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

法哥2012

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值