C++ 检查类似于GetSaveFileName、C++;/Win32

C++ 检查类似于GetSaveFileName、C++;/Win32,c++,c,winapi,C++,C,Winapi,我有一个程序,同时使用SHBrowseForFolder和GetSaveFileName 当我使用GetSaveFileName并且所选目录没有正确的权限时,它会自动显示一个错误,即当前用户没有正确的权限 当我使用SHBrowseForFolder时,我需要进行类似的检查 已尝试CreateDirectory,但如果选择的目录为C:,则会成功,而GetSaveFileName只允许管理员在此处写入。您可以使用以下方法检查权限: GetProcessToken GetTokenInformatio

我有一个程序,同时使用SHBrowseForFolder和GetSaveFileName

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

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


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

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

  • GetProcessToken
  • GetTokenInformation(获取用户的令牌用户和SID)
  • GetNamedSecurityInfo(获取给定文件夹的DACL)和
  • BuildTrusteeWithId(pTrustee、pSidUser)
  • GetEffectiveRightsFromAcl

  • 有关更多详细信息,请参阅文章。

    使用
    IFileSaveDialog
    FOS\u PICKFOLDERS
    选项