我有一个同时使用SHBrowseForFolder,GetSaveFileName的程序。
当我使用GetSaveFileName并且所选目录没有正确的权限时,它会自动显示错误,表明当前用户没有适当的权限。
使用SHBrowseForFolder时,我需要进行与此类似的检查。
尝试过CreateDirectory,但如果选择的目录为C :,它将成功执行,而GetSaveFileName仅允许管理员在此处写入。
最佳答案
您可以使用以下方法检查权限:
GetProcessToken
GetTokenInformation(获取令牌用户和用户的SID)
GetNamedSecurityInfo(获取给定文件夹的DACL)和
BuildTrusteeWithSid(pTrustee,pSidUser);
GetEffectiveRightsFromAcl
有关更多详细信息,请参见Check User’s Permissions On A File or Folder文章。