QQ登录

只需一步,快速开始

171上位机VC MFC文件夹的新建复制改名删除操作

[ 复制链接 ]

171上位机VC MFC文件夹的新建复制改名删除操作

171上位机VC MFC文件夹的新建复制改名删除操作
171上位机VC MFC文件夹的新建复制改名删除操作
功能展示
文件夹的操作为是编写编程时常用的功能,当前例程实现了文件夹的创建,删除,重命名,复制和强制删除带有文件及子文件夹的功能,效果如图;
要点提示
创建文件夹可以用函数CreateDirectory()实现;
删除文件夹可以用函数RemoveDirectory()实现;
删除带有子文件夹及文件的文件夹可以用函数SHFileOperation()实现
重命名文件夹和文件重命名一样,可以用函数MoveFile()实现;
复制文件夹也可以通过函数SHFileOperation()实现,只要修改其参数的具体变量;
实现功能
1.新建基于对话框的应用程序
2.拖拽一静态文本控件ID修改为IDC_NOTE用于显示操作结果;
拖拽一编辑框控件ID为IDC_EDIT1,用于显示文件夹路径;
3.依次拖拽按钮控件,实现相应功能,按钮关联函数独立运行
  1. void CGkbc8Dlg::OnExplor()
  2. {
  3.         //><获取桌面路径
  4.         LPITEMIDLIST pidl;
  5.         LPMALLOC pShellMalloc;
  6.         char szDir[MAX_PATH];
  7.         
  8.         if(SUCCEEDED(SHGetMalloc(&pShellMalloc)))
  9.         {
  10.                 if(SUCCEEDED(SHGetSpecialFolderLocation(NULL,CSIDL_DESKTOP,&pidl)))
  11.                 {
  12.                         SHGetPathFromIDList(pidl, szDir);
  13.                         pShellMalloc->Free(pidl);
  14.                 }
  15.                 pShellMalloc->Release();
  16.         }
  17. //><选择路径
  18.     BROWSEINFO bi;   
  19.     bi.hwndOwner      = this->GetSafeHwnd();  
  20.     bi.pidlRoot       = NULL;  
  21.     bi.pszDisplayName = NULL;   
  22.     bi.lpszTitle      = TEXT("请选择文件夹");   
  23.     bi.ulFlags        = BIF_RETURNONLYFSDIRS | BIF_STATUSTEXT;  
复制代码
  1. bi.lpfn           = BrowseCallBackFun;NULL;  // //回调函数
  2.     bi.lParam         = (LPARAM)szDir;//= 0;//传给回调函数的参数,设置默认路径
  3.     bi.iImage         = 0;   

  4.     pidl = SHBrowseForFolder(&bi);  
  5.     if (pidl == NULL)  
  6.         return;
  7.   
  8.     if (SHGetPathFromIDList(pidl, szDir))  
  9.         {
  10.                 CString sDir(szDir);
  11.                 sDir+="\\工控编程吧";
  12.                 SetDlgItemText(IDC_EDIT1,sDir);
  13.         }
  14. }
  15. int CALLBACK BrowseCallBackFun(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData)  
  16. {  
  17.     switch(uMsg)  
  18.     {  
  19.     case BFFM_INITIALIZED:  //选择文件夹对话框初始化  
  20.         ::SendMessage(hwnd, BFFM_SETSELECTION, TRUE, lpData);//设置默认路径   
  21.         ::SendMessage(hwnd, BFFM_SETSTATUSTEXT, 0, lpData);  //在STATUSTEXT区域显示当前路径  
  22.         ::SetWindowText(hwnd, TEXT("请先设置个工作目录"));//设置选择文件夹对话框的标题   
  23.         break;  
  24.     case BFFM_SELCHANGED:   //选择文件夹变更时  
  25.         {  
  26.             TCHAR pszPath[MAX_PATH];        
  27.             SHGetPathFromIDList((LPCITEMIDLIST)lParam, pszPath);  //获取当前选择路径
  28.             ::SendMessage(hwnd, BFFM_SETSTATUSTEXT, TRUE, (LPARAM)pszPath);//在STATUSTEXT区域显示当前路径   
  29.         }  
  30.         break;  
  31.     }  
  32.     return 0;  
  33. }
复制代码
  1. void CGkbc8Dlg::OnCreate() //创建文件夹
  2. {
  3.         CString sDir;
  4.         GetDlgItemText(IDC_EDIT1,sDir);

  5.         if(::CreateDirectory(sDir,NULL))
  6.                 SetDlgItemText(IDC_NOTE,"创建文件夹成功");
  7.         else
  8.                 SetDlgItemText(IDC_NOTE,"创建文件夹失败");        
  9. }
  10. void CGkbc8Dlg::OnRename()
  11. {
  12.         CString sDir,sNewDir,sFoldName;
  13.         GetDlgItemText(IDC_EDIT1,sDir);

  14.         sFoldName = sDir.Right(sDir.GetLength()-sDir.ReverseFind('\\')-1);
  15.         if(sFoldName == "工控编程吧")
  16.                 sFoldName ="gkbc8.com";
  17.         else
  18.                 sFoldName="工控编程吧";
  19.         sNewDir   = sDir.Left(sDir.ReverseFind('\\')+1);
  20. //        
  21.         sNewDir+=sFoldName;
  22.         if(::MoveFile(sDir,sNewDir) )
  23.         {
  24.                 SetDlgItemText(IDC_EDIT1,sNewDir);
  25.                 SetDlgItemText(IDC_NOTE,"重命名文件夹成功");
  26.         }
  27.         else
  28.                 SetDlgItemText(IDC_NOTE,"重命名文件夹失败");

  29. }
复制代码
代码过多过长,可以下载例程学习

我们来演示下功能实现的整个过程
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:171.上位机VC MFC文件夹的新建复制改名删除操作.rar 
文件大小:155.21 KB  售价:10金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我

  

您的支持是我们创作的动力!  

  

您可花点闲钱积分自助任意充值

  

成为VIP会员 全站资源任意下载永久更新!


回复

使用道具 举报

快速回复 返回列表 客服中心 搜索