winapi - 使用 Windows API 覆盖系统/隐藏文件的正确方法是什么?
问题描述
当您使用CopyFileExA函数(请参阅Windows API 参考:winbase.h)复制文件时,如果目标文件已经存在,它可以使用(或清除)标志 COPY_FILE_FAIL_IF_EXISTS 来“失败”或不“失败”。但是,我找不到用只读、隐藏或系统属性覆盖文件的方法。
我正在开发一个具有特定要求的备份程序,这是我在其他任何地方都找不到的。
我在想,在复制具有一个或多个这些属性集的文件之前,也许我可以清除现有文件上的这些属性,然后继续复制文件,因为我知道我的程序将用明确的属性覆盖现有文件。
这是最好的方法吗?
另一种选择是在复制新文件之前删除旧文件。但我担心如果我删除旧的(备份)文件,然后才会尝试复制新的文件,如果由于某种原因复制失败,那么我最终会没有备份文件。
或者也许有一种我不知道的覆盖系统/隐藏文件的方法。
完成此任务的最佳方法是什么 - 复制和覆盖设置了 System/Hidden/ReadOnly 属性的文件?
解决方案
推荐阅读
- r - 带有ggplot的多个堆叠条形图
- flutter - 颤振未处理的错误类型'_InternalLinkedHashMap
' 不是类型 'Map 的子类型 ' - python - 将 Pandas 数据框写入 excel 会导致文件损坏
- vb.net - Visual Basic 中的 UPnP:是否仍然有效?
- javascript - 如何防止元素因边距而换行?
- mysql - MySQL> 转义反斜杠字符本身的最佳实践
- javascript - 当我滚动页面时,我的垂直菜单项同时滚动
- c++ - 如何从重载决议中删除重载函数?
- mysql - # 1064 存储过程中多次插入mysql错误
- ruby-on-rails - 在 Docker 中查找 Makefile 的路径 - shell 脚本