我想在 "d:\test\" 文件夹内写入文件,但很不幸,我没有该文件夹的写入权限。如何检查该文件夹是否具有写入权限。
注意:fopen()是有帮助的,但会创建新文件。我不想创建额外的文件。
我也看到了CreateFile(),但不知道如何在这种情况下使用它。
我想在 "d:\test\" 文件夹内写入文件,但很不幸,我没有该文件夹的写入权限。如何检查该文件夹是否具有写入权限。
注意:fopen()是有帮助的,但会创建新文件。我不想创建额外的文件。
我也看到了CreateFile(),但不知道如何在这种情况下使用它。
只需打开(并写入)文件并分析系统返回的错误 (如果有的话),不需要执行检查操作以判断是否拥有权限。执行此操作将导致竞态条件,第一次调用告诉你可以创建一个文件,而第二次失败是因为在两次调用之间访问权限已更改。
实际上,检查您是否具有写入权限的一种方法是使用安全访问函数。在那里,您可以查询所有不同的权限(删除、创建、写入、索引...)
我从未使用过它们,所以无法为您提供示例。
请记住,在检查访问权限并创建文件或写入之间可能会发生访问权限变更,因此仍可能失败。这就是其他人提到的竞态条件。
如果您最终仍要创建文件,请像其他人提到的那样使用CreateFile
。