【发布时间】:2015-03-11 12:14:22
【问题描述】:
我正在 Windows 中开发一个 Visual Studio 项目。 我想检查一个文件有什么权限(特殊写入), 现在我正在使用:
hFile = CreateFile(wtext, // name of the write
GENERIC_WRITE, // open for writing
0, // do not share
NULL, // default security
OPEN_EXISTING, // open only if exists
FILE_ATTRIBUTE_NORMAL, // normal file
NULL); // no attr. template
我不想使用 CreateFile,因为对于某些文件,我需要以管理员身份运行我的 prog 才能获得结果。
如何在不使用 CreateFile 的情况下检查文件访问详细信息?
【问题讨论】:
-
您的代码没有检查权限。它打开一个文件。你到底想做什么?
-
我知道,我想检查一个文件的写权限,因为我不知道怎么做,我使用带有 generic_write 和 open_existing 的 CreateFile 函数,并且在使用后 if (hFile == INVALID_HANDLE_VALUE)操作并查看我是否有写权限
-
定义“检查写入权限”的含义。您的意思是当前进程用户令牌是否有足够的权限来执行该操作?
-
如果用户会话对文件有写权限。例如,c:\program 文件中的某些 dll 对 SERVICE\TrustedInstaller 具有 RW 访问权限,而 BUILTIN\Users 只有 R 访问权限