MFC文件夹的复制

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

CString m_strSrc;//原路径

CString m_strDst;//目标路径

添加一个成员函数:

[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. void CCopyfolderDlg::CopyDirectory(CString source, CString target)  
  2. {  
  3.      CreateDirectory(target,NULL); //获取目标拷贝的路径 拷贝至哪里  
  4.     CFileFind finder;    
  5.     CString path=source+_T("\\*.*"); //需要拷贝的文件的路径  
  6.    // AfxMessageBox(path);  //调试用  
  7.     bool bWorking = finder.FindFile(path);  //是否找到了需要拷贝的文件的路径  
  8.     while(bWorking){    
  9.         bWorking = finder.FindNextFile();    
  10.         //AfxMessageBox(finder.GetFileName());  //调试用  
  11.         if(finder.IsDirectory() && !finder.IsDots()){ //是不是有效的文件夹  
  12.             CopyDirectory(finder.GetFilePath(),target+_T("\\")+finder.GetFileName()); //递归查找文件夹  
  13.             }    
  14.         else//是文件则直接复制   
  15.             CopyFile(finder.GetFilePath(),target+_T("\\")+finder.GetFileName(),FALSE);  //拷贝文件夹下的所有文件  
  16.         }    
  17.     }    
  18. }  

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

[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. void CCopyfolderDlg::OnBnClickedOk()  
  2. {  
  3.     UpdateData(true);//两个路径获取值  
  4.     CopyDirectory(m_strSrc,m_strDst);  
  5.     AfxMessageBox(_T("复制成功!"));  
  6.     OnOK();  
  7. }  

生成的界面如下图所示:


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值