我有一些旧的 vb6 代码,通过写入 Windows 目录然后读回值来检查 Windows 目录是否可写。
但是...我们有一个病毒扫描程序将其视为可疑行为,所以我想在不接触它的情况下进行检查。
有任何 Windows API 调用吗? (适用于 Win 98 及以上版本)
最佳答案
这里要记住的是文件系统是易变的。我能看到这段代码被使用的唯一方法是首先检查文件夹是否可写,然后尝试写一些你想写的东西。这里的问题是,对于易变的文件系统,在您进行检查和尝试写入之间,事情可能会发生变化。因此,如果您的写入失败,您仍然必须能够处理异常。这意味着初始检查几乎被浪费了。最好将您的精力投入到编写更好的异常处理程序中。
此外,对于 Windows 2000 和更高版本,只有当用户以管理员身份运行时,Windows 才应该是可写的。很长一段时间以来,以管理员身份运行是常见的做法,但人们开始意识到这不是一个好主意。从长远来看,让您的程序做任何需要以这种方式运行的事情都不是一个好主意。
事实上,从 Windows Vista 开始,默认情况下用户不会以管理员身份运行任何东西,即使登录到管理员帐户也是如此。相反,他们必须手动选择以管理员身份运行程序,或者等待安全检查失败系统会提示他们提升。
关于windows - 有什么方法可以判断 Windows 目录是否可写而无需实际写入它进行测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1854045/