zoukankan      html  css  js  c++  java
  • 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):不能在不同的盘符下移动目录

    删除文件注册表位置:

    计算机HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession Manager

    PendingFileRenameOperations

  • 相关阅读:
    【根据条件添加属性】vue页面标签根据条件添加属性
    serialVersionUID
    onsubmit="return navTabSearch(this);"
    MyEclipse改变项目的编码方式
    Tomcat端口被占用
    可拖动图层
    顶部可以折叠的菜单工具栏
    转---- javascript prototype介绍的文章
    网页右侧弹出有缓冲效果的工具栏
    根据时间改变背景
  • 原文地址:https://www.cnblogs.com/priarieNew/p/9754536.html
Copyright © 2011-2022 走看看