0

我有一个同时使用 SHBrowseForFolder、GetSaveFileName 的程序。

当我使用 GetSaveFileName 并且选择的目录没有正确的权限时,它会自动显示当前用户没有正确权限的错误。

当我使用 SHBrowseForFolder 时,我需要进行类似的检查。

尝试过 CreateDirectory 但如果选择的目录是 C: 则成功,而 GetSaveFileName 只允许管理员在此处写入。

4

1 回答 1

0

您可以使用以下方法检查权限:

  1. 获取进程令牌
  2. GetTokenInformation(获取用户的 tokenuser 和 SID)
  3. GetNamedSecurityInfo(获取给定文件夹的 DACL)和
  4. BuildTrusteeWithSid(pTrustee, pSidUser);
  5. GetEffectiveRightsFromAcl

有关更多详细信息,请参阅检查用户对文件或文件夹的权限一文。

于 2013-09-19T08:36:13.867 回答