windows API 第13篇 MoveFileEx 您所在的位置:网站首页 movefile失败代码225 windows API 第13篇 MoveFileEx

windows API 第13篇 MoveFileEx

2023-09-21 15:24| 来源: 网络整理| 查看: 265

上一篇介绍了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):不能在不同的盘符下移动目录

 

删除文件注册表位置:

计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager

PendingFileRenameOperations

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有