文件操作SHFileOperation的用法


在Windows的shellapi文件中定义了一个名为SHFileOperation()的外壳函数,用它可以实现各种文件操作,如文件的拷贝、删除、移动等,该函数使用起来非常简单,它只有一个指向SHFILEOPSTRUCT结构的参数。使用SHFileOperation()函数时只要填写该专用结构–SHFILEOPSTRUCT,告诉Windows执行什么样的操作,以及其它重要信息就行了。SHFileOperation()的特别之处在于它是一个高级外壳函数,不同于低级文件处理。当调用SHFileOperation操作文件时,相应的外壳拷贝处理器(如果有的话)被调用。如在删除某个文件时,SHFileOperation会将删除的文件放到Recycle Bin中。SHFileOperation()函数的原形为

WINSHELLAPI int WINAPI SHFileOperation (LPSHFILEOPSTRUCT lpFIleOp);

  1. 文件删除
bool DeleteFile(char * lpszPath) { SHFILEOPSTRUCT FileOp={0}; FileOp.fFlags = FOF_ALLOWUNDO |   //允许放回回收站FOF_NOCONFIRMATION; //不出现确认对话框FileOp.pFrom = lpszPath; FileOp.pTo = NULL;  //一定要是NULLFileOp.wFunc = FO_DELETE;//删除操作return SHFileOperation(&FileOp) == 0; }

2.. 复制文件或文件夹

bool CopyFile(char *pTo,char *pFrom){SHFILEOPSTRUCT FileOp={0}; FileOp.fFlags = FOF_NOCONFIRMATION|   //不出现确认对话框FOF_NOCONFIRMMKDIR ; //需要时直接创建一个文件夹,不需用户确定FileOp.pFrom = pFrom; FileOp.pTo = pTo; FileOp.wFunc = FO_COPY; return SHFileOperation(&FileOp) == 0; }

3.. 移动文件或文件夹

bool MoveFile(char *pTo,char *pFrom)
{
SHFILEOPSTRUCT FileOp={0};
FileOp.fFlags = FOF_NOCONFIRMATION|   //不出现确认对话框 FOF_NOCONFIRMMKDIR ; //需要时直接创建一个文件夹,不需用户确定
FileOp.pFrom = pFrom;
FileOp.pTo = pTo;
FileOp.wFunc = FO_MOVE;
return SHFileOperation(&FileOp) == 0;
}

SHFileOperation的用法相关推荐

  1. SHFileOperation使用

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

  2. [Python黑帽] 一.获取Windows主机信息、注册表、U盘历史痕迹和回收站文件

    最近开始学习网络安全和系统安全,接触到了很多新术语.新方法和新工具,作为一名初学者,感觉安全领域涉及的知识好广.好杂,但同时也非常有意思.这系列文章是作者学习安全过程中的总结和探索,我们一起去躺过那些 ...

  3. MFC 的CList,CPtrList,CObList,CStringList 的用法

    一直在编程中使用stl进行编程,但是最近感觉微软提供的模版类也是很好,出错机率更低,建议在mfc的工程使用.相关介绍如下,参照msdn搞清接口即可使用 CList是通用型的列表类,你可以存放指定的数据 ...

  4. c语言中external,static关键字用法

    static用法: 在C中,static主要定义全局静态变量.定义局部静态变量.定义静态函数. 1.定义全局静态变量:在全局变量前面加上关键字static,该全局变量变成了全局静态变量.全局静态变量有 ...

  5. Pandas_transform的用法

    先来看一个实例问题. 如下销售数据中展现了三笔订单,每笔订单买了多种商品,求每种商品销售额占该笔订单总金额的比例.例如第一条数据的最终结果为:235.83 / (235.83+232.32+107.9 ...

  6. Python中yield和yield from的用法

    yield 后面接的是 future 对象 调用方 委托生成器 yield from 直接给出循环后的结果 yield from 委托者和子生成器直接通信 yield from 直接处理stopIte ...

  7. pytorch学习 中 torch.squeeze() 和torch.unsqueeze()的用法

    squeeze的用法主要就是对数据的维度进行压缩或者解压. 先看torch.squeeze() 这个函数主要对数据的维度进行压缩,去掉维数为1的的维度,比如是一行或者一列这种,一个一行三列(1,3)的 ...

  8. python yield 和 yield from用法总结

    #例1. 简单输出斐波那契數列前 N 个数 #缺点:该函数可复用性较差,因为 fab 函数返回 None,其他函数无法获得该函数生成的数列 #要提高 fab 函数的可复用性,最好不要直接打印出数列,而 ...

  9. tf.nn.embedding_lookup()的用法

    函数: tf.nn.embedding_lookup( params, ids, partition_strategy='mod', name=None, validate_indices=True, ...

  10. OpenMP用法大全

    OpenMP基本概念 OpenMP是一种用于共享内存并行系统的多线程程序设计方案,支持的编程语言包括C.C++和Fortran.OpenMP提供了对并行算法的高层抽象描述,特别适合在多核CPU机器上的 ...

最新文章

  1. GitHub托管项目
  2. 011_Redis的快照持久化
  3. 什么叫大地高_续航8折不存在,北汽新能源EX5实力演绎什么叫高续航SUV!
  4. win10怎么共享打印机_共享打印机添加不上怎么办?建议收藏备用
  5. javafx中的tree_JavaFX中的塔防
  6. vue 项目:文件夹 结构 、配置详解
  7. gradle下bug修正后问题仍存在解决思路
  8. Revit二次开发示例:HelloRevit
  9. 收获,不止SQL优化——抓住SQL的本质--第十章
  10. jQuery学习笔记——筛选元素集合
  11. [C/C++]_[0基础]_[static_cast,reinterpret_cast,dynimic_cast的使用场景和差别]
  12. python实现Kruskal算法求解加权图中最小生成树问题
  13. [LeetCode] Number of 1 Bits 位操作
  14. lacp静态和动态区别_LACP协议原理
  15. 一二线城市知名 IT 互联网公司名单(新版)
  16. 学生用计算机没电了,cfa计算器没电了怎么办
  17. android高仿ios控制中心,仿 iOS 11原生控制中心
  18. bestcoder#22NPY and girls
  19. Meta元宇宙副总裁离职了...『Go语言圣经』终于汉化啦;德云社失业警告!AI要说相声了;一键就能AI绘图的网站;前沿论文 | ShowMeAI资讯日报
  20. 解方程计算器,一款数学神器APP,有需要的自己收藏!

热门文章

  1. html登录页面修改背景图片,html网页背景图片设置
  2. TwinCAT 3 基础——安装
  3. 增值税相关软件基本常识
  4. 基于深度学习的图像超分论文推荐
  5. 毕业设计所用到的工具,需要了解的神器,不妨来看看,工具基本全了
  6. 淘宝APP用户行为数据分析 by 一只废鹅
  7. 仿淘宝、腾讯课堂评分组件 --- Android高级自定义组件
  8. 小学生python编程教程-Python适合小学生学的编程语言
  9. SQLMap常用命令介绍
  10. Arduino基础学习-SG90舵机的使用