windows API 第13篇 MoveFileEx
上一篇介绍了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相关推荐
- windows API 第八篇 _tcsicmp _stricmp _wcsicmp _mbsicmp
这些函数都是比较字符串小写的,忽略大写,出入的字符串都将按照小写比较 Perform a lowercase comparison of strings. 函数原型: int _stricmp( co ...
- windows API 开发飞机订票系统 图形化界面 (二)
首先,用到的数据结构的定义.以及全局变量和函数的声明如下: 1 // Flight.c : 定义应用程序的入口点. 2 // 3 #include "stdafx.h" 4 5 / ...
- 挂钩Windows API
创建时间:2004-03-06 文章属性:原创 文章提交:SoBeIt (kinsephi_at_hotmail.com) ===========================[ 挂钩Windows ...
- Windows API函数速查
http://blog.csdn.net/ghevinn/article/details/8213614 Windows API函数速查 1. API之网络函数 WNetAddConnection 创 ...
- windows API 勾子内幕初探
这篇技术文章英文原文来源于www.codeguru.com, 经过本人翻译和修改 术语约定: hook/hooking:勾子,勾挂,勾子技术,监控 进程标志:process token spying ...
- 用C#和本地Windows API操纵系统菜单
一.前言 .net框架是Windows应用领域中一个非常新的技术,可以肯定在未来的一段时间内,.NET应用必须与现存的Windows技术交互作用.这种交互作用主要体现在两个领域:COM和应用编程接口( ...
- windows api打开文件对话框
用windows api 写打开文件对话框主要使用OPENFILENAME ,GetOpenFileName, GetSaveFileName; 1.OPENFILENAME 结构体介绍:要使用Get ...
- 善于 调用Windows API
前一段时间看见别人做的一个自动填写信息并且点击登录的程序,觉得很有意思. 其实就是在程序中调用Windows的API,那么如何调用,下面就做个简单的介绍. 写的简单粗暴, 不喜轻喷. 0.首先引入名称 ...
- 使用Signature Tool自动生成P/Invoke调用Windows API的C#函数声明
使用Signature Tool自动生成P/Invoke调用Windows API的C#函数声明 分类: 小技巧 Win32编程 C++ 解决难题 .NET2009-02-05 20:53 5186人 ...
最新文章
- 刘强东宣布: 未来京东将减员50%,每天工作3小时!无人公司来了……
- 【OMP信道估计】基于OMP压缩感知的信道估计算法的MATLAB仿真
- java 缓存接口,java项目中,针对缓存问题的处理方式【接口中的处理方式】
- React组件-事件、状态和生命周期
- AGP与PCI-E的区别和PCI-E接口与PCI接口的区别
- JDBC05 ResultSet结果集
- Python时钟代码——利用python turtle实现模拟时钟
- 企业信用评分卡模型概述
- 完全背包问题(详细解答)
- android 广告库sdk,秒针移动广告投放Android SDK集成指南
- upnp是不是虚拟服务器,360路由器虚拟服务器设置(360路由器开启upnp功能)
- 硬件工程师综合训练 旋转图形设计
- 屏蔽ENTER键、ESC键的使用
- Pap.er 3.5.4 中文版 (专为Mac设计的高清壁纸应用)
- ios13短信如何转移到android,iOS13加入全新数据迁移功能,无需网络也能转移旧手机数据...
- PHP MVC及模板引擎
- mvc php 代码审计,代码审计从入门到放弃系列篇一之代码审计学习思路
- Google Earth Engine(GEE)—— GRIDMET: 爱达荷大学网格化地表气象数据集
- 服部周作《麦肯锡晋升法则》读书笔记 I
- 十个最好的免费网络硬盘