上一篇介绍了MoveFile,这次分析MoveFileEx,它是MoveFile的扩展函数,功能还要更加强大些。
先看定义

BOOL WINAPI MoveFileEx(_In_     LPCTSTR lpExistingFileName,_In_opt_ LPCTSTR lpNewFileName,_In_     DWORD   dwFlags
);返回值:       成功返回1, 失败返回0这里只介绍dwFlags参数:dwFlags:设置移动标志,指明要怎样操作文件或者目录。取值可以有:MOVEFILE_COPY_ALLOWED:当需要移动文件到不同的盘符时需要指定此值,不然会失败,这个值不能和MOVEFILE_DELAY_UNTIL_REBOOT一起用MOVEFILE_DELAY_UNTIL_REBOOT:文件并不立即移动,当下一次机器重启时文件才执行移动 ,不能和MOVEFILE_COPY_ALLOWED同时用MOVEFILE_FAIL_IF_NOT_TRACKABLE:当源文件是连接资源时会移动失败。MOVEFILE_REPLACE_EXISTING:当目的文件已经存在时,要将lpExistingFileName的内容替换掉以前的内容,此时要检查ACL权限,可能会失败MOVEFILE_WRITE_THROUGH:只有当文件完全到达目的文件的时候函数才返回,缓冲区也不能有未留的数据

注意事项:
(1):使用 MOVEFILE_DELAY_UNTIL_REBOOT时,当前用户具有system或者administer才管用,否则会失败
(2): 当lpExistingFileName 为文件, lpNewFileName 为NULL, dwFlags为MOVEFILE_DELAY_REBOOT时,表示删除文件,下一次重启将删除文件.
(3):当lpExistingFileName为目录, lpNewFileName 为NULL, dwFlags为MOVEFILE_DELAY_REBOOT时,只有当目录为空目录,下一次重启才会删除目录.
(4):移动目录时,一定要保证目录目录不存在,否则调用失败
(5):移动文件时,目的文件存在,可以使用MOVEFILE_COPY_ALLOWED,覆盖已存在的文件,此时函数模拟的CopyFile,DeleteFile.可能出现复制成功,删除失败,此时,源文件将原封不动
(6):不能在不同的盘符下移动目录

转载于:https://www.cnblogs.com/priarieNew/p/9754536.html

windows API 第13篇 MoveFileEx相关推荐

  1. windows API 第八篇 _tcsicmp _stricmp _wcsicmp _mbsicmp

    这些函数都是比较字符串小写的,忽略大写,出入的字符串都将按照小写比较 Perform a lowercase comparison of strings. 函数原型: int _stricmp( co ...

  2. windows API 开发飞机订票系统 图形化界面 (二)

    首先,用到的数据结构的定义.以及全局变量和函数的声明如下: 1 // Flight.c : 定义应用程序的入口点. 2 // 3 #include "stdafx.h" 4 5 / ...

  3. 挂钩Windows API

    创建时间:2004-03-06 文章属性:原创 文章提交:SoBeIt (kinsephi_at_hotmail.com) ===========================[ 挂钩Windows ...

  4. Windows API函数速查

    http://blog.csdn.net/ghevinn/article/details/8213614 Windows API函数速查 1. API之网络函数 WNetAddConnection 创 ...

  5. windows API 勾子内幕初探

    这篇技术文章英文原文来源于www.codeguru.com, 经过本人翻译和修改 术语约定: hook/hooking:勾子,勾挂,勾子技术,监控 进程标志:process token spying ...

  6. 用C#和本地Windows API操纵系统菜单

    一.前言 .net框架是Windows应用领域中一个非常新的技术,可以肯定在未来的一段时间内,.NET应用必须与现存的Windows技术交互作用.这种交互作用主要体现在两个领域:COM和应用编程接口( ...

  7. windows api打开文件对话框

    用windows api 写打开文件对话框主要使用OPENFILENAME ,GetOpenFileName, GetSaveFileName; 1.OPENFILENAME 结构体介绍:要使用Get ...

  8. 善于 调用Windows API

    前一段时间看见别人做的一个自动填写信息并且点击登录的程序,觉得很有意思. 其实就是在程序中调用Windows的API,那么如何调用,下面就做个简单的介绍. 写的简单粗暴, 不喜轻喷. 0.首先引入名称 ...

  9. 使用Signature Tool自动生成P/Invoke调用Windows API的C#函数声明

    使用Signature Tool自动生成P/Invoke调用Windows API的C#函数声明 分类: 小技巧 Win32编程 C++ 解决难题 .NET2009-02-05 20:53 5186人 ...

最新文章

  1. 刘强东宣布: 未来京东将减员50%,每天工作3小时!无人公司来了……
  2. 【OMP信道估计】基于OMP压缩感知的信道估计算法的MATLAB仿真
  3. java 缓存接口,java项目中,针对缓存问题的处理方式【接口中的处理方式】
  4. React组件-事件、状态和生命周期
  5. AGP与PCI-E的区别和PCI-E接口与PCI接口的区别
  6. JDBC05 ResultSet结果集
  7. Python时钟代码——利用python turtle实现模拟时钟
  8. 企业信用评分卡模型概述
  9. 完全背包问题(详细解答)
  10. android 广告库sdk,秒针移动广告投放Android SDK集成指南
  11. upnp是不是虚拟服务器,360路由器虚拟服务器设置(360路由器开启upnp功能)
  12. 硬件工程师综合训练 旋转图形设计
  13. 屏蔽ENTER键、ESC键的使用
  14. Pap.er 3.5.4 中文版 (专为Mac设计的高清壁纸应用)
  15. ios13短信如何转移到android,iOS13加入全新数据迁移功能,无需网络也能转移旧手机数据...
  16. PHP MVC及模板引擎
  17. mvc php 代码审计,代码审计从入门到放弃系列篇一之代码审计学习思路
  18. Google Earth Engine(GEE)—— GRIDMET: 爱达荷大学网格化地表气象数据集
  19. 服部周作《麦肯锡晋升法则》读书笔记 I
  20. 十个最好的免费网络硬盘

热门文章

  1. leetcode141. 环形链表
  2. 通用模块 -- Dubbo 用户模块
  3. vue 头部组件监控页面来源
  4. 配置中心、消息队列、分布式服务链路跟踪
  5. 基础表比商户对账和汇总多了一笔退款数据
  6. SpringBoot配置@PropertySource、@ImportResource、@Bean注解
  7. scrapy爬取汽车之家宝马5系图片
  8. inMap 2.0 重磅发布!
  9. 记录一次跨国笔试经过
  10. 解读新突破“中国量子计算机”,真比神威·太湖之光还厉害?