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
  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. 将 C:\Test.txt 拷贝到 D:\
  41. SHFILEOPSTRUCT lpsh;
  42. ZeroMemory(&lpsh,sizeof(lpsh));
  43. lpsh.hwnd= HWND_DESKTOP;
  44. lpsh.fFlags=FOF_NOCONFIRMATION|FOF_SIMPLEPROGRESS ;
  45. lpsh.wFunc=FO_COPY; // FO_MOVE 则是移动
  46. lpsh.pFrom= "C:\Test.txt";
  47. lpsh.pTo = "D:\"
  48. if( 0 != SHFileOperation(&lpsh))
  49. {
  50. AfxMessageBox("复制文件出错,请检查");
  51. return ;
  52. }
  53. 2. 删除 D:\Test.txt
  54. SHFILEOPSTRUCT lpsh;
  55. ZeroMemory(&lpsh,sizeof(lpsh));
  56. lpsh.hwnd= HWND_DESKTOP;
  57. lpsh.fFlags=FOF_NOCONFIRMATION|FOF_SIMPLEPROGRESS ;
  58. lpsh.wFunc=FO_DELETE;
  59. lpsh.pFrom= "D:\Test.txt";
  60. if( 0 != SHFileOperation(&lpsh))
  61. {
  62. AfxMessageBox("删除文件出错,请检查");
  63. return ;
  64. }
  65. 3.重命名
  66. SHFILEOPSTRUCT lpsh;
  67. ZeroMemory(&lpsh,sizeof(lpsh));
  68. lpsh.hwnd= HWND_DESKTOP;
  69. lpsh.fFlags=FOF_NOCONFIRMATION|FOF_SIMPLEPROGRESS ;
  70. lpsh.wFunc=FO_RENAME;
  71. lpsh.pFrom= "D:\Test.txt";
  72. lpsh.pTo = "D:\Test2.txt";
  73. if( 0 != SHFileOperation(&lpsh))
  74. {
  75. AfxMessageBox("重命名文件出错!");
  76. return ;
  77. }
  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);

SHFileOperation相关推荐

  1. 使用Windows的SHFileOperation外壳函数实现文件操作

    在Windows的shellapi文件中定义了一个名为SHFileOperation()的外壳函数,用它可以实现各种文件操作,如文件的拷贝.删除.移动等,该函数使用起来非常简单,它只有一个指向SHFI ...

  2. VC批量拷贝,移动,删除文件---SHFileOperation

    SHFileOperation 函数功能描述:文件操作,与 Shell 的动作相同. 函数原型: #include<shellapi.h> WINSHELLAPI int WINAPI S ...

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

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

  4. SHFileOperation使用

    总结一下SHFileOperation的用法,希望对大家有用 //删除文件或者文件夹 bool DeleteFile(char * lpszPath) { SHFILEOPSTRUCT FileOp= ...

  5. 文件/文件夹操作函数封装(使用SHFileOperation和SHCreateDirectory函数实现)

    最近工作中涉及到很多文件和文件夹的处理,包括删除.检测是否存在.移动.复制等,用过CopyFile.MoveFile等函数,也使用过SHFIleOperation()函数,觉得后者比较好用些,参考了C ...

  6. 对SHFileOperation函数的一点研究

    SHFileOperation是一种外壳函数,用它可以实现各种文件操作,如文件的拷贝.删除.移动等,当然,它也可以对文件夹进行操作.它操作文件夹有一个亮点就是,当删除某个文件夹时可以删除非空文件夹,而 ...

  7. SHFileOperation函数

    在Windows的shellapi文件中定义了一个名为SHFileOperation()的外壳函数,用它可以实现各种文件操作,如文件的拷贝.删除.移动等,该函数使用起来非常简单,它只有一个指向SHFI ...

  8. Windows文件操作的直接函数调用

    1.调用文件属性对话框 procedure OpenWindowsFilePropertys(FileName: string); var sei: TSHELLEXECUTEINFO; begin ...

  9. C++学习之:复制和粘贴文件/文件夹

    从剪贴板上获得要复制/剪贴的文件路径之后,如何完成文件/文件夹的粘贴呢.下面列出了两个函数用来完成这些功能 //复制的粘贴 DWORD VrvCopyFile( LPCWSTR lpSrc, LPCW ...

  10. 多种数据DELPHI备份方式(源码)

    Access: //数据备份(创建一个新的备份文件). procedure TMainForm.BitBtn1Click(Sender: TObject); var     F:TShFileOpSt ...

最新文章

  1. ubuntu 安装qt5
  2. 【运筹学】线性规划数学模型 ( 知识点回顾 | 可行解 | 最优解 | 阶梯型矩阵 | 阶梯型矩阵向量 | 基 | 基向量 | 基变量 | 非基变量 )
  3. import tensorflow 报错 ImportError: DLL load failed: 找不到指定的模块。
  4. C语言试题九之s=(ln(1)+ln(2)+ln(3)+…+ln(m))^0.5,s作为函数值返回
  5. php date( ymd_PHP DATE()
  6. java与javac版本不一致问题
  7. 11.history命令历史
  8. ❤️《大前端—模块化》
  9. Android Espresso
  10. Scala的空值删除和空值填充
  11. 优科无线并购Wi-Fi入网软件提供商Cloudpath Networks
  12. MATLAB高斯迭代算法,matlab实现高斯赛德尔迭代法解方程组
  13. 《深度工作》学习总结
  14. 使用C语言构造一个简单计算器
  15. 天涯“大鹏金翅明王”语录
  16. Android集成华为、小米、OPPO、VIVO、极光推送
  17. c语言输出成绩与排名,C语言算成绩 要求输完两个分数后 同时输出两个分数换算出来的成绩...
  18. 宠物狗网页制作作业 保护动物网页设计模板 简单学生网页设计 静态HTML CSS网站制作成品
  19. 如何实现RS485串口通讯采集模拟量
  20. Mysql字段类型转换

热门文章

  1. 智能脚本植入与CBSS+
  2. SmartDNS设置和各个选项意义使用指南
  3. java自定义对象集合排序
  4. 2022 DSCTF首届数字空间安全攻防大赛 部分题解
  5. php扫描图片条形码,php如何生成条形码图片(附代码)
  6. 全国计算机绘图师第三期工业产品,工业产品类CAD技能等级考试试题集
  7. 虚拟化服务器不能远程控制,kvm虚拟化如何搭建? 向日葵远程控制
  8. 图形验证码php点击刷新,ThinkPHP实现点击图片刷新验证码
  9. Android MD5加密
  10. mysql关系代数表达式,【数据库复习】关系代数