问候!
我正在尝试使用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中确定目录的写入权限?如果是这样,怎么样?
由于
埃文
答案 0 :(得分:4)
您可以使用GENERIC_WRITE访问权限调用CreateFile来检查这一点。 http://msdn.microsoft.com/en-us/library/aa363858(VS.85).aspx
它不是一个C ++库,但它仍然很优雅,因为它直接做你想要的......
答案 1 :(得分:1)
使用sec api。 你可以问Adv。 Win32 api新闻组: 新闻://194.177.96.26/comp.os.ms-windows.programmer.win32 它经常被讨论过(C / C ++代码)
答案 2 :(得分:1)
有很多Windows security functions,虽然我不会称它们的用法特别优雅。我建议将GetNamedSecurityInfo作为一般解决方案,但CreateFile解决方案具有一定的简洁性和直接性,我也很欣赏。 :)