SHFileOperation的用法
文件操作SHFileOperation的用法
在Windows的shellapi文件中定义了一个名为SHFileOperation()的外壳函数,用它可以实现各种文件操作,如文件的拷贝、删除、移动等,该函数使用起来非常简单,它只有一个指向SHFILEOPSTRUCT结构的参数。使用SHFileOperation()函数时只要填写该专用结构–SHFILEOPSTRUCT,告诉Windows执行什么样的操作,以及其它重要信息就行了。SHFileOperation()的特别之处在于它是一个高级外壳函数,不同于低级文件处理。当调用SHFileOperation操作文件时,相应的外壳拷贝处理器(如果有的话)被调用。如在删除某个文件时,SHFileOperation会将删除的文件放到Recycle Bin中。SHFileOperation()函数的原形为
WINSHELLAPI int WINAPI SHFileOperation (LPSHFILEOPSTRUCT lpFIleOp);
- 文件删除
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的用法相关推荐
- SHFileOperation使用
总结一下SHFileOperation的用法,希望对大家有用 //删除文件或者文件夹 bool DeleteFile(char * lpszPath) { SHFILEOPSTRUCT FileOp= ...
- [Python黑帽] 一.获取Windows主机信息、注册表、U盘历史痕迹和回收站文件
最近开始学习网络安全和系统安全,接触到了很多新术语.新方法和新工具,作为一名初学者,感觉安全领域涉及的知识好广.好杂,但同时也非常有意思.这系列文章是作者学习安全过程中的总结和探索,我们一起去躺过那些 ...
- MFC 的CList,CPtrList,CObList,CStringList 的用法
一直在编程中使用stl进行编程,但是最近感觉微软提供的模版类也是很好,出错机率更低,建议在mfc的工程使用.相关介绍如下,参照msdn搞清接口即可使用 CList是通用型的列表类,你可以存放指定的数据 ...
- c语言中external,static关键字用法
static用法: 在C中,static主要定义全局静态变量.定义局部静态变量.定义静态函数. 1.定义全局静态变量:在全局变量前面加上关键字static,该全局变量变成了全局静态变量.全局静态变量有 ...
- Pandas_transform的用法
先来看一个实例问题. 如下销售数据中展现了三笔订单,每笔订单买了多种商品,求每种商品销售额占该笔订单总金额的比例.例如第一条数据的最终结果为:235.83 / (235.83+232.32+107.9 ...
- Python中yield和yield from的用法
yield 后面接的是 future 对象 调用方 委托生成器 yield from 直接给出循环后的结果 yield from 委托者和子生成器直接通信 yield from 直接处理stopIte ...
- pytorch学习 中 torch.squeeze() 和torch.unsqueeze()的用法
squeeze的用法主要就是对数据的维度进行压缩或者解压. 先看torch.squeeze() 这个函数主要对数据的维度进行压缩,去掉维数为1的的维度,比如是一行或者一列这种,一个一行三列(1,3)的 ...
- python yield 和 yield from用法总结
#例1. 简单输出斐波那契數列前 N 个数 #缺点:该函数可复用性较差,因为 fab 函数返回 None,其他函数无法获得该函数生成的数列 #要提高 fab 函数的可复用性,最好不要直接打印出数列,而 ...
- tf.nn.embedding_lookup()的用法
函数: tf.nn.embedding_lookup( params, ids, partition_strategy='mod', name=None, validate_indices=True, ...
- OpenMP用法大全
OpenMP基本概念 OpenMP是一种用于共享内存并行系统的多线程程序设计方案,支持的编程语言包括C.C++和Fortran.OpenMP提供了对并行算法的高层抽象描述,特别适合在多核CPU机器上的 ...
最新文章
- GitHub托管项目
- 011_Redis的快照持久化
- 什么叫大地高_续航8折不存在,北汽新能源EX5实力演绎什么叫高续航SUV!
- win10怎么共享打印机_共享打印机添加不上怎么办?建议收藏备用
- javafx中的tree_JavaFX中的塔防
- vue 项目:文件夹 结构 、配置详解
- gradle下bug修正后问题仍存在解决思路
- Revit二次开发示例:HelloRevit
- 收获,不止SQL优化——抓住SQL的本质--第十章
- jQuery学习笔记——筛选元素集合
- [C/C++]_[0基础]_[static_cast,reinterpret_cast,dynimic_cast的使用场景和差别]
- python实现Kruskal算法求解加权图中最小生成树问题
- [LeetCode] Number of 1 Bits 位操作
- lacp静态和动态区别_LACP协议原理
- 一二线城市知名 IT 互联网公司名单(新版)
- 学生用计算机没电了,cfa计算器没电了怎么办
- android高仿ios控制中心,仿 iOS 11原生控制中心
- bestcoder#22NPY and girls
- Meta元宇宙副总裁离职了...『Go语言圣经』终于汉化啦;德云社失业警告!AI要说相声了;一键就能AI绘图的网站;前沿论文 | ShowMeAI资讯日报
- 解方程计算器,一款数学神器APP,有需要的自己收藏!