1. SHFileOperation
  2. 函数功能描述:文件操作,与 Shell 的动作相同.
  3. 函数原型:
  4. #include<shellapi.h>
  5. WINSHELLAPI int WINAPI SHFileOperation(LPSHFILEOPSTRUCT lpFileOp);
  6. 参数:
  7. typedef struct _SHFILEOPSTRUCT
  8. {
  9. HWND            hwnd;   //父窗口句柄
  10. UINT            wFunc; //要执行的动作
  11. LPCTSTR         pFrom; //源文件路径,可以是多个文件
  12. LPCTSTR         pTo;    //目标路径,可以是路径或文件名
  13. FILEOP_FLAGS    fFlags; //标志,附加选项
  14. BOOL            fAnyOperationsAborted; //是否可被中断
  15. LPVOID          hNameMappings;         //文件映射名字,可在其它 Shell 函数中使用
  16. LPCTSTR         lpszProgressTitle; // 只在 FOF_SIMPLEPROGRESS 时,指定对话框的标题。
  17. } SHFILEOPSTRUCT, FAR *LPSHFILEOPSTRUCT;
  18. wFunc 可以为:
  19. /FO_MOVE          0x0001 移动文件
  20. FO_COPY           0x0002 复制文件
  21. FO_DELETE         0x0003 删除文件,只使用 pFrom
  22. FO_RENAME         0x0004 文件重命名
  23. fFlags可以为:
  24. FOF_MULTIDESTFILES         0x0001 //pTo 指定了多个目标文件,而不是单个目录
  25. FOF_CONFIRMMOUSE           0x0002  //Not used.
  26. FOF_SILENT                 0x00044 // 不显示一个进度对话框
  27. FOF_RENAMEONCOLLISION      0x0008 // 碰到有抵触的名字时,自动分配前缀
  28. FOF_NOCONFIRMATION         0x0010 // 不对用户显示提示
  29. FOF_WANTMAPPINGHANDLE      0x0020 // 填充 hNameMappings 字段,必须使用 SHFreeNameMappings 释放
  30. FOF_ALLOWUNDO              0x0040 // 允许撤销
  31. FOF_FILESONLY              0x0080 // 执行通配符,使用 *.* 时, 只对文件操作
  32. FOF_SIMPLEPROGRESS         0x0100 // 简单进度条,意味者不显示文件名。
  33. FOF_NOCONFIRMMKDIR         0x0200 // 建新目录时不需要用户确定
  34. FOF_NOERRORUI              0x0400 // 不显示出错用户界面
  35. FOF_NOCOPYSECURITYATTRIBS 0x0800 // 不复制 NT 文件的安全属性
  36. FOF_NORECURSION            0x1000 // 不递归目录
  37. 返回值:
  38. 函数成功返回 0 ,失败返回非 0 。
  39.   注意:
  40. 1.pFrom和pTo最好以\0\0结尾(把存放路径的字符串初始化为0),不然有可能会出错
  41. 2.SHFileOperation能操作网络上的文件 如果你想将本地文件复制到192.168.1.99 那么只要在192.168.1.99上共享123目录 然后将pTo设置为\\192.168.1.99\123 就可以了 但不要设置为\\192.168.1.99
  42. 例子:
  43. 1. 将 C:\Test.txt 拷贝到 D:\
  44. SHFILEOPSTRUCT lpsh;
  45. ZeroMemory(&lpsh,sizeof(lpsh));
  46. lpsh.hwnd= HWND_DESKTOP;
  47. lpsh.fFlags=FOF_NOCONFIRMATION|FOF_SIMPLEPROGRESS ;
  48. lpsh.wFunc=FO_COPY; // FO_MOVE 则是移动
  49. lpsh.pFrom= "C:\Test.txt";
  50. lpsh.pTo = "D:\"
  51. if( 0 != SHFileOperation(&lpsh))
  52. {
  53. AfxMessageBox("复制文件出错,请检查");
  54. return ;
  55. }
  56. 2. 删除 D:\Test.txt
  57. SHFILEOPSTRUCT lpsh;
  58. ZeroMemory(&lpsh,sizeof(lpsh));
  59. lpsh.hwnd= HWND_DESKTOP;
  60. lpsh.fFlags=FOF_NOCONFIRMATION|FOF_SIMPLEPROGRESS ;
  61. lpsh.wFunc=FO_DELETE;
  62. lpsh.pFrom= "D:\Test.txt";
  63. if( 0 != SHFileOperation(&lpsh))
  64. {
  65. AfxMessageBox("删除文件出错,请检查");
  66. return ;
  67. }
  68. 3.重命名
  69. SHFILEOPSTRUCT lpsh;
  70. ZeroMemory(&lpsh,sizeof(lpsh));
  71. lpsh.hwnd= HWND_DESKTOP;
  72. lpsh.fFlags=FOF_NOCONFIRMATION|FOF_SIMPLEPROGRESS ;
  73. lpsh.wFunc=FO_RENAME;
  74. lpsh.pFrom= "D:\Test.txt";
  75. lpsh.pTo = "D:\Test2.txt";
  76. if( 0 != SHFileOperation(&lpsh))
  77. {
  78. AfxMessageBox("重命名文件出错!");
  79. return ;
  80. }
  1. SHFILEOPSTRUCT Op;
  2. ZeroMemory(&Op, sizeof(Op));
  3. TCHAR ToBuf[MAX_PATH];
  4. TCHAR FromBuf[MAX_PATH];
  5. ZeroMemory(ToBuf, sizeof(ToBuf));
  6. ZeroMemory(FromBuf, sizeof(FromBuf));
  7. lstrcpy(FromBuf, strDeleteFile);
  8. Op.hwnd = NULL;
  9. Op.pFrom = FromBuf;
  10. Op.pTo = ToBuf;
  11. Op.fFlags = FOF_NOCONFIRMATION | FOF_NOCONFIRMMKDIR | FOF_NOERRORUI;
  12. Op.fAnyOperationsAborted = FALSE;
  13. Op.hNameMappings = NULL;
  14. Op.lpszProgressTitle = NULL;
  15. Op.wFunc = FO_DELETE;
  16. SHFileOperation(&Op);

VC批量拷贝,移动,删除文件---SHFileOperation相关推荐

  1. VC++6.0如何删除文件

    左面workspace中选择FileView(VC界面中左侧部分共有三个选项卡:ClassView.ResourceView和FileView) 里面的文件删掉,然后再工程中其他地方如果头文件包含了你 ...

  2. 云服务器怎么拷贝和删除文件,怎样给云服务器拷贝文件

    怎样给云服务器拷贝文件 内容精选 换一换 本章节主要介绍云硬盘.弹性文件服务.对象存储服务等存储服务,让您更好的了解这些存储服务. 云服务器备份:云服务器备份可以对普通服务器进行整机备份或部分磁盘备份 ...

  3. cmd之拷贝、删除文件夹

    创建目录: md Ring,mkdir Ring mkdir aaa\bbb\ccc 删除: rmdir 只能删空目录 rd 用来删目录,del用来删文件. rd Ring /S/Q   删除整个目录 ...

  4. linux拷贝文件夹怎么删除,linux文件及文件夹拷贝移动删除

    linux文件及文件夹拷贝移动删除 文件拷贝 文件夹拷贝 文件拷贝并重命名 文件夹拷贝并重命名 文件移动 文件夹移动 文件移动并重命名 文件夹移动并重命名 文件删除 文件夹删除 文件拷贝 cp tes ...

  5. Linux使用shell脚本批量拷贝文件

    在日常工作中我们经常会碰到在linux下导出文件的工作,如果挨个拷贝就很麻烦也很不方便. 方法一:for循环的拷贝 这种方法适合轻量拷贝,我们把需要拷贝的文件名单独列出来,放在name.txt文件中, ...

  6. C#文件操作 追加、拷贝、删除、移动文件、创建目录 修改文件名、文件夹名

    C#追加文件 StreamWriter sw = File.AppendText(Server.MapPath(".")+"\\myText.txt"); sw ...

  7. 指定路径列表批量拷贝文件+Windows批处理命令大全

    一.指定路径列表批量拷贝Windows文件 cat.bat @echo off set target = '' mkdir samples setloacal enabledelayedexpanss ...

  8. SHFileOperation()函数移动,复制,删除文件\文件夹

    (转载于:http://hi.baidu.com/%B4%E7%B2%DD%D0%C4_/blog/item/e3a8200a28f6ea3ab1351d38.html) //删除文件或者文件夹 bo ...

  9. win7怎么把计算机删除文件,win7电脑怎么批量删除文件_win7电脑批量删除文件的方法 - 系统家园...

    在我们日常使用win7系统电脑时,应该有很多用户遇到过需要批量删除文件的情况,那么win7电脑怎么批量删除文件呢?下面小编就为大家带来win7电脑批量删除文件的方法,感兴趣的小伙伴快来看看吧. win ...

最新文章

  1. 230套java web开发PDF书籍和CHM参考手册资料大全 免费下载
  2. JAVA入门级教学之(数据类型)
  3. VS Code 常规配置和一些插件 - JavaScript
  4. 微课--Python嵌套函数定义与使用
  5. Python基础篇:常见常用且要常记得的数据类型--列表
  6. php 降低视频分辨率,将低分辨率视频变成1920*1080高分辨视频,可自由调节分辨率宽高...
  7. Spring事务原理1-动态代理
  8. envi神经网络分类原理,ENVI神经网络分类
  9. 软件项目管理 1.3.敏捷项目管理概念
  10. 多普勒效应的原理及应用 一 多普勒现象的发现
  11. 添加个人博客音乐外链
  12. 北京最牛的医院 最牛的科室排名出炉
  13. 安卓逆向学习笔记(一)
  14. EXCEL设置自动隔行填充颜色
  15. kafka listeners 和 advertised.listeners 的区别及应用
  16. 新粉色苹果CMS10视频站源码模板 仿APP内附教程
  17. 轩小陌的Python笔记-day28 索引、函数及存储过程
  18. 网页特效源码分析----标签云
  19. vue发送请求时遇到index.vue?6ced:90 Uncaught (in promise) TypeError: Cannot read properties of undefined
  20. 【Java基础】· 集合习题详解

热门文章

  1. 设计模式之_Iterator_03
  2. 全国计算机一级d类考试内容,全国计算机一级考试WPS office复习题及答案2017
  3. dbeaver导出建表语句_细致入微:如何使用数据泵导出表的部分列数据
  4. ubuntu在线安装和卸载libusb
  5. STM32的ADC采集的引脚汇总
  6. 紧急通知!最新版CleanMyMac X月底倒计时清仓冲量!
  7. 【翻译】Nginx的反向代理
  8. win7 下的open live writer代码插件
  9. AngularJS笔记之创建服务方式比较 : factory vs service vs provider
  10. 【Go语言】【2】Sublime配置GO开发环境