gpt4 book ai didi

c++ - 创建只读不可删除文件

转载 作者:行者123 更新时间:2023-11-30 19:38:35 26 4
gpt4 key购买 nike

我尝试创建不可删除且只读的文件。 (它是一个 exe,所以也许我也需要执行。)

我试图用这个来实现它:

SetFileAttributes(My_File_Path,FILE_ATTRIBUTE_READONLY);

但它只防止写入(它允许读取但不能写入),而防止删除它什么也不做,即使根据 MSDN,它也应该防止删除:

A file that is read-only. Applications can read the file, but cannot write to it or delete it. This attribute is not honored on directories. For more information, see "You cannot view or change the Read-only or the System attributes of folders in Windows Server 2003, in Windows XP, or in Windows Vista

如何防止文件被删除?

  • 文件系统为 NTFS。
  • 这是为了保护。这些文件供 child 使用,我想防止他们删除该文件。 (或者,让删除变得尽可能困难。)
  • 我正在寻找程序化解决方案

最佳答案

删除文件实际上是目录更改,而不是文件更改。如前所述,您不能使用属性,您需要完整的 NTFS 访问控制列表 (ACL)。特别是,您需要一个访问控制条目 (ACE),

  1. 否认
  2. 所有人
  3. 修改整个目录的权限

您可以选择将另一个 ACE 添加到具有以下属性的 ACL 前面

  1. 允许
  2. 您自己
  3. 修改整个目录的权限

ACL 上的 ACE 是按顺序处理的,因此这可以防止您将自己锁定。

关于c++ - 创建只读不可删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37855241/

26 4 0
文章推荐: javascript - 下载文件时Angular忽略离开页面事件
文章推荐: c# - Linq 自定义排序
文章推荐: c# - 如何将 IEnumerable 转换为 IEnumerable