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