微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

检查目录的正确方法可用于编写

我最近添加了GetTempPath到应用程序的使用。 在代码审查过程中,突出显示了GetTempPath的描述包含以下信息:

在任何使用文件I / O操作之前,应用程序应validationpath的存在和对path的足够访问权限。

现在,所有的文件访问都被包装在try / catch块中,那么系统将不能访问它自己的临时目录?

我最初的想法是尝试创build目录,如果它们不存在(通过GetFileAttributes和CreateDirectory),然后创build一个文件,写一个字节,然后删除文件。 虽然这将工作,它的愚蠢 – 当然有一个更好的方式来检查,你有写权限的文件夹?

从Java Web应用程序访问Linux本地文件系统

如何在Windows中保护文件

打开后文件没有准备好写入?

使用VC ++在Windows上保护虚拟磁盘

Docker copY命令提供对复制文件的访问权限

我开始寻找和发现文件属性常量,通用访问权限,标准访问权限,文件访问权限常量和GetSecurityInfo函数。 所有这些似乎创造了一个比创build一个文件更长的解决scheme,看看它是否坚持方法

那么使用WinAPI函数来检查你是否有写权限的正确方法是什么?

不同Windows电脑上的多个进程如何同时使用共享目录中存储的文件

记事本打败了他们?

Linux中的文件访问计数

检查另一个程序是否有打开的文件

电子:是否可以检索上次访问文件的date和时间

MSDN的说明是误导性的。 你可能想要检查返回的路径是否存在(如果没有,创建它),但唯一知道你是否可以写在那里的方法是写在那里。

此外,仅仅因为你可以写在那里,并不意味着你可以在那里写。 用户或其他程序可能会删除东西,更改安全设置,锁定目录等。尝试提前验证是否可以写入地点是浪费时间。 只要你需要的时候写,并为失败做好准备。

最好的方法是尝试将文件写入目录。 如果由于缺乏权限而写入失败,那么错误代码会告诉你。 寻找ERROR_ACCESS_DENIED 。

如果您尝试以其他方式进行操作,那么您将只是复制即将运行的系统代码。 而且,对于当前版本的Windows和未来版本,您几乎没有机会复制它。

没有必要创建一个文件,并写一个字节。 假设您有临时文件夹的写入权限,并尝试写入您需要的整个文件。 如果你遇到失败,那么你可以终止这个过程。 如果无法写入临时文件夹,则继续执行没有多少意义。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐