4

问候!

我正在尝试使用 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 中目录的写入权限?如果是这样,怎么做?

谢谢

埃文

4

3 回答 3

4

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

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

于 2008-10-13T16:21:47.813 回答
1

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

于 2008-10-13T16:00:02.147 回答
1

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

于 2008-10-13T17:18:20.197 回答