MFC应用实例:[61]复制文件夹及其文件

 时间:2024-10-14 08:42:09

1、新建一个基于对话框的应用程序,工程名为CopyFolder。

MFC应用实例:[61]复制文件夹及其文件

3、对源目录后面的“>>”按钮添加响应函数OnRfolder(),响应函数OnRfolder()代码如下:void C潮贾篡绐CopyFolderDlg::OnRfolder(){ LPMALLOC pMalloc; //定义指向IMalloc的指针 if (::SHGetMalloc(&pMalloc) != NOERROR) return; // failed to get allocator char szDisplayName[_MAX_PATH]; char szBuffer[_MAX_PATH]; BROWSEINFO browseInfo; //构造对话框结构 browseInfo.hwndOwner = this->m_hWnd; browseInfo.pidlRoot = NULL; //设置根目录为桌面 browseInfo.pszDisplayName = szDisplayName; browseInfo.lpszTitle = "选择要复制的源目录"; //对话框标题 browseInfo.ulFlags = BIF_RETURNFSANCESTORS|BIF_RETURNONLYFSDIRS; browseInfo.lpfn = NULL; //未用 browseInfo.lParam = 0; //未用 LPITEMIDLIST lpItemIDList; if ((lpItemIDList = ::SHBrowseForFolder(&browseInfo))!= NULL) { if (::SHGetPathFromIDList(lpItemIDList, szBuffer))//得到目录的路径 { if (szBuffer[0] == '\0') { return ; } m_strSourceFolder = szBuffer; UpdateData(false); } else { AfxMessageBox("不能得到所选的文件夹!",MB_ICONSTOP|MB_OK); return; } pMalloc->Free(lpItemIDList); pMalloc->Release(); }}

MFC应用实例:[61]复制文件夹及其文件

5、对“复制”按钮添加响应函数OnCopy(),响应函数OnCopy()代码如下:void CCopyFolderDlg::OnCopy(){ UpdateData(true); SHFILEOPSTRUCT sfo;//结构体 char szSource[MAX_PATH]; char szDest[MAX_PATH]; lstrcpy(szSource,m_strSourceFolder);//源目录 lstrcpy(szDest,m_strDestFolder);//目的目录 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 = "文件夹拷贝";//进度条的标题 if(SHFileOperation(&sfo)==0) //拷贝成功,SHFileOperation返回0 AfxMessageBox("成功完成拷贝!"); else AfxMessageBox("拷贝出错");}

MFC应用实例:[61]复制文件夹及其文件
  • 植物传播种子的方法(二)
  • 前列腺炎会引起舌苔白厚、脾胃虚寒吗
  • 蜂王浆的好处
  • 买奔驰车哪种贷款方式最划算
  • 全民飞机大战 电脑版 一款出自腾讯的经典游戏
  • 热门搜索
    西递宏村旅游 四川稻城亚丁旅游攻略 昆明旅游网 开曼群岛旅游 万达旅游 广州旅游博览会 西安旅游报价 浙江有什么旅游景点 焦作旅游网 云南旅游酒店