在CreateFile()中有DesiredAccess,如GENERIC_READ,GENERIC_WRITE,FILE_READ_ATTRIBUTES等。
我的问题是单独删除系统中文件所需的最低/确切权限是什么?
谢谢
答案 0 :(得分:4)
如果您只想删除文件,请使用DeleteFile
功能。
它的文档详细说明了您需要的权限,以及您应该了解的一些内容,例如:
如果您在创建文件时请求删除权限,则可以使用该句柄删除或重命名该文件,但不能使用任何其他句柄。
该文档页面中有很好的信息,包括指向File Security and Access Rights的链接。
查看OpenFile
文档页面中链接的ACCESS_MASK
页面,了解实际的删除访问权限标记 - 它简称为DELETE
。
但是一句警告:这种检查总是充满活力。文件权限可以在您的访问权限检查和后续删除之间更改。 (Time of check/time of use。)
答案 1 :(得分:2)
我相信你只需要DELETE
次访问权限。它不是文件访问权限,而是标准访问权限。
不容易发现允许使用这些标准访问权限,但MSDN page文件访问权限声明:
文件和目录的有效访问权限包括DELETE,READ_CONTROL,WRITE_DAC,WRITE_OWNER和SYNCHRONIZE标准访问权限。