windows - 有什么方法可以判断 Windows 目录是否可写而无需实际写入它进行测试?

标签 windows vb6 file-io

我有一些旧的 vb6 代码,通过写入 Windows 目录然后读回值来检查 Windows 目录是否可写。

但是...我们有一个病毒扫描程序将其视为可疑行为,所以我想在不接触它的情况下进行检查。

有任何 Windows API 调用吗? (适用于 Win 98 及以上版本)

最佳答案

这里要记住的是文件系统是易变的。我能看到这段代码被使用的唯一方法是首先检查文件夹是否可写,然后尝试写一些你想写的东西。这里的问题是,对于易变的文件系统,在您进行检查和尝试写入之间,事情可能会发生变化。因此,如果您的写入失败,您仍然必须能够处理异常。这意味着初始检查几乎被浪费了。最好将您的精力投入到编写更好的异常处理程序中。

此外,对于 Windows 2000 和更高版本,只有当用户以管理员身份运行时,Windows 才应该是可写的。很长一段时间以来,以管理员身份运行是常见的做法,但人们开始意识到这不是一个好主意。从长远来看,让您的程序做任何需要以这种方式运行的事情都不是一个好主意。

事实上,从 Windows Vista 开始,默认情况下用户不会以管理员身份运行任何东西,即使登录到管理员帐户也是如此。相反,他们必须手动选择以管理员身份运行程序,或者等待安全检查失败系统会提示他们提升。

关于windows - 有什么方法可以判断 Windows 目录是否可写而无需实际写入它进行测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1854045/

相关文章:

string - 修剪所有类型的空白,包括制表符

c# - VB 到 C++ 或 C#?

C# 和 VB6 : How to convert 'with' statement to C#?

matlab - 如何加载 .mat 文件并在 Octave 或 Matlab 中设置变量名?

r - read.csv与read.table

python - Windows 上的资源限制?

在 Windows 10 上运行 R/RStudio

javascript - Heroku 文件上传

node.js - 在 Windows 7 中向 meteor 应用程序添加包时出现“node-gyp rebuild”安装错误

windows - 如何获取文件放置在 Windows 目录中的日期/时间?