如何在win32 C/winapi中检查目录是否可写?

Bac*_*zek 0 c++ windows winapi

我知道两种不可靠的方法:

  • _access() - 对目录不起作用(仅检查存在)
  • CreateFile() - 在存在虚拟商店(AFAIK)的情况下给出误报

最有用的是代码示例,因为win32 ACL访问函数非常复杂.请不要发布到msdn的链接,我一直在那里,不能为我的生活找出我应该对所有这些DACL,SACL和安全描述符做什么 - 我在一个跨平台的应用程序上工作它需要这个特定的功能,否则是平台无关的.比访问Windows ACL更简单的解决方案非常受欢迎.

编辑:您可以放心地假设在应用程序运行时目录权限不会更改.

And*_*rey 5

您可以在清单文件中禁用应用程序的位置虚拟化(http://www.codeguru.com/csharp/csharp/cs_misc/designtechniques/article.php/c15455/) - 这应该使CreateFile足够可靠,以满足您的需要.