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):不能在不同的盘符下移动目录
windows API 第13篇 MoveFileEx的更多相关文章
- windows API 第22篇 WTSGetActiveConsoleSessionId
函数原型:DWORD WTSGetActiveConsoleSessionId (VOID)先看一下原文介绍: The WTSGetActiveConsoleSessionId function re ...
- Windows API 第12篇 MoveFile
MoveFile可以移动文件,更名文件,移动目录(包括目录下的所有文件以及子目录).函数定义:BOOL MoveFile( LPCTSTR lpExistingFileName, // file n ...
- Windows API 第六篇 GetLocalTime
GetLocalTime获取系统时间信息.函数原型:VOID WINAPI GetLocalTime( __out LPSYSTEMTIME lpSystemTime ); 先来看S ...
- Windows API 第三篇
1.获得程序自身的路径: DWORD GetModuleFileName( HMODULE hModule, // handle to module LPTSTR lpFilename, // pat ...
- Windows API 第21篇 DeleteVolumeMountPoint 删除挂载点
函数原型:BOOL DeleteVolumeMountPoint( LPCTSTR lpszV ...
- Windows API 第20篇 SetVolumeMountPoint 设置卷挂载点参数错误
函数原型:BOOL SetVolumeMountPoint( IN LPCTSTR lpszVo ...
- Windows API 第20篇 GetVolumeNameForVolumeMountPoint
函数原型: BOOL GetVolumeNameForVolumeMountPoint( ...
- Windows API 第19篇 FindFirstVolumeMountPoint FindNextVolumeMountPoint
相关函数:HANDLE FindFirstVolumeMountPoint( ...
- windows API 第 18篇 FindFirstVolume FindNextVolume
函数定义:Retrieves the name of a volume on a computer. FindFirstVolume is used to begin scanning the vol ...
随机推荐
- cordova 插件发布到 npm
cordova 插件发布到 npm Cordova插件开发(3)- 将Cordova插件发布到npm could not find an installed version of gradle eit ...
- soapui打开即报错------连接不上Internet
1.遇到的问题: 打开soapui即报错,如下: You're getting this message since your computer is offline and SoapUI can't ...
- undertow服务器
参考地址:http://undertow.io/undertow-docs/undertow-docs-1.3.0/index.html 1.引入相关jar <dependencies> ...
- 命令学习_ping
PING: ping是一个所有操作系统都支持的简单工具.我么可以利用ping来解析DNS 的A record和PTRrecord. A记录是将域名映射到IP地址,这个是ping的缺省功能, ping同 ...
- STM32F103 Feature
- PAT甲级——A1127 ZigZagging on a Tree【30】
Suppose that all the keys in a binary tree are distinct positive integers. A unique binary tree can ...
- vue+element的el-menu组件实现路由跳转及当前项的设置
<el-menu router :default-active="$route.path" class="el-menu-vertical-demo" @ ...
- idea的安装与破解
1.下载 官网:https://www.jetbrains.com/idea/download/#section=windows 百度盘:https://pan.baidu.com/s/16mRNPK ...
- Traveling by Stagecoach /// 状压DP oj22914
题目大意: 输入n,m,p,a,b n是车票数(1<=n<=8),m是城市数(2<=m<=30) p是路径数(可能为0),a是起点,b是终点 接下来一行有n个数 为每张车票的马 ...
- angularJs FileUpload插件上传同一文件无效问题记录
参考:https://blog.csdn.net/qq_34829447/article/details/83780392 问题:使用FileUpload插件进行文件上传时,发现无法上传与上个文件相同 ...