【问题标题】:Code for checking write-permissions for directories in Win2K/XPWin2K/XP中检查目录写权限的代码
【发布时间】:2010-09-16 22:02:50
【问题描述】:

您好!

我正在尝试使用 C++ 从 Windows MFC/ATL 程序中检查目录写权限。我的第一个猜测是使用 C 标准的 _access 函数,例如:

if (_access("C:\mydir", 2) == -1)
   // Directory is not writable.

但显然在 Windows 2000 和 XP 上,_access 无法确定目录权限。 (即,当您在资源管理器中右键单击目录时,“属性”对话框中的“安全”选项卡)那么,是否有一种优雅的方法可以使用任何 Windows C++ 库在 Windows 2000/XP 中确定目录的写权限?如果有,怎么做?

谢谢

埃文

【问题讨论】:

  • _access 不是标准 C 的一部分(因此前导下划线)。

标签: c++ windows security permissions atl


【解决方案1】:

使用 sec api。 您可以在 Adv 上询问。 Win32 api 新闻组: 新闻://194.177.96.26/comp.os.ms-windows.programmer.win32 经常讨论的地方(C/C++代码)

【讨论】:

    【解决方案2】:

    您可以调用具有 GENERIC_WRITE 访问权限的 CreateFile 来检查这一点。 http://msdn.microsoft.com/en-us/library/aa363858(VS.85).aspx

    它不是 C++ 库,但它仍然算得上优雅,因为它直接执行您想要的操作...

    【讨论】:

      【解决方案3】:

      有很多Windows security functions,尽管我不会称它们的用法特别优雅。我会推荐 GetNamedSecurityInfo 作为通用解决方案,但 CreateFile 解决方案具有一定的简单性和直接性,我也很欣赏。 :)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多