我尝试创建不可删除且只读的文件。 (它是一个exe,所以也许我也需要执行。)
我试图用这个来实现它:
SetFileAttributes(My_File_Path,FILE_ATTRIBUTE_READONLY);
但它只能防止写入(它允许读取它但不写入它),而反对删除它什么都不做,即使根据MSDN它应该保护不被删除:
只读文件。应用程序可以读取文件,但无法写入或删除它。目录上不支持此属性。有关详细信息,请参阅“您无法在Windows Server 2003,Windows XP或Windows Vista中查看或更改文件夹的只读或系统属性
如何阻止文件被删除?
答案 0 :(得分:0)
删除文件是目录更改,实际上不是文件更改。如前所述,您无法使用属性,您需要完整的NTFS访问控制列表(ACL)。特别是,您需要的是访问控制条目(ACE)
Everyone
您可以选择使用属性
将另一个ACE添加到ACLyourself
ACL上的ACE按顺序处理,因此这可以防止您将自己锁定。