【发布时间】:2012-01-23 15:10:50
【问题描述】:
我最近在应用程序中添加了GetTempPath 的使用。在代码审查期间,有人强调 GetTempPath 的描述包含以下信息:
在用于文件 I/O 操作之前,应用程序应验证路径的存在以及对该路径的足够访问权限。
现在所有文件访问都包含在 try/catch 块中,还有什么系统无法访问它自己的临时目录?
我最初的想法是尝试创建不存在的目录(通过 GetFileAttributes 和 CreateDirectory),然后创建一个文件,写入一个字节,然后删除该文件。虽然这会起作用,但它有点无知 - 肯定有更好的方法来检查您是否具有对文件夹的写入权限?
我开始查找文件属性常量、通用访问权限、标准访问权限、文件访问权限常量和 GetSecurityInfo 函数。所有这些似乎都创建了一个比创建文件更长的解决方案,看看它是否坚持方法。
那么使用 WinAPI 函数检查您对文件夹有写权限的正确方法是什么?
【问题讨论】:
标签: windows winapi visual-c++ directory file-access