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

时间:2009-05-28 16:27:56

标签: c++ windows winapi

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

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

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

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

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:1)

在任何操作系统上都没有可靠的方法,因为可以在测试它们和实际编写文件之间更改权限。