在Windows中删除文件需要哪些权限

时间:2011-05-15 08:58:37

标签: c++ winapi file-permissions

在CreateFile()中有DesiredAccess,如GENERIC_READ,GENERIC_WRITE,FILE_READ_ATTRIBUTES等。

我的问题是单独删除系统中文件所需的最低/确切权限是什么?

谢谢

2 个答案:

答案 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标准访问权限。