文件操作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. AUTHORITY-CHECK
  2. InnoDB 的索引模型
  3. C语言的struct和C++的class的区别
  4. 计算机辅助抗体设计,计算机辅助设计提高单克隆抗体亲和力的研究
  5. 12-关于DOM操作的相关案例
  6. 利用Visual Studio Project自动将数据加载到SQL Server数据库中
  7. 香港学计算机,香港求学计算机专业集锦
  8. PTA 7-2 深入虎穴 (30 分)
  9. Kotlin — 使用IDEA运行第一个Kotlin程序,打印“Hello World”!
  10. Intellij-工程目录下隐藏不想显示的文件和文件夹
  11. 再学 GDI+[45]: 文本输出 - 文本呈现质量
  12. 京东安卓客户端values文件夹
  13. 零基础应该怎么学剪辑,大概要学多长时间?在磨金石教育学靠谱吗?
  14. 华为和荣耀的关系:亲兄弟,各自为王
  15. 华为手机灭屏也能看时间吗?很多技巧你不知道,2分钟就能学会
  16. COA-2019-第十四章 Instruction Sets
  17. through mysql.sock_MySQL server through socket '/tmp/mysql.sock' (2)
  18. Ubuntu 高性能模式
  19. ESP32设备驱动-ADXL345三轴加速计驱动
  20. 色彩基础-图像处理必备

热门文章

  1. 消息中间件RabbitMQ(五)——实现RPC调用
  2. 苏州软件企业如何办理自产软件产品增值税即征即退
  3. 神经网络物联网未来发展趋势怎么样
  4. 实验四 使用CANVAS API画图
  5. pdf 加深 扫描件_扫描文字字体如何加深 pdf扫描件字体加深
  6. Spring mvc 项目整合P6Spy
  7. HTTP请求详细过程
  8. 02、RS485 通信与 Modbus 协议
  9. 三菱PLC控制步进电机
  10. 使用BoundsChecker