我可以给Windows用户执行哪些步骤以使给定文件可写

时间:2020-03-05 18:45:51  来源:igfitidea点击:

假设我们有一个程序试图写入特定文件,但是失败了。

在Windows平台上,什么可能导致文件无法写入,以及可以建议最终用户/管理员采取哪些步骤进行修复。

请包括可能需要管理员权限的步骤(显然,用户可能不是管理员,但是对于这个问题,让我们假设他们是(或者可以成为)管理员。

另外,我对Windows中的权限计算方式并不熟悉,用户是否需要对树上每个目录的写访问权,或者类似的东西?

解决方案

回答

一些建议:

  • 没有写权限(通过"文件属性"窗口上的"安全性"选项卡获取权限;我们必须是文件所有者或者管理员)
  • 文件被锁定(关闭可能打开该文件的任何程序,然后在没有帮助的情况下重新启动)
  • 文件设置了只读的DOS属性(从"文件属性"窗口中取消设置,或者使用" attrib -r"将其取消设置;我们必须是文件所有者或者管理员)

编辑1:只有第二个项目(文件被锁定)才有可能的解决方案,所有用户都可以在没有帮助的情况下进行操作。对于第一个和第三个,我们可能需要提供指导(并希望该文件没有被故意设为只读!)。

编辑2:从技术上讲,用户确实需要对直到根目录的所有目录具有写和执行(chdir)权限。 Windows可能会跳过一些递归检查来提高性能,但我们不应该依赖它,因为管理员可以对某些用户强制执行这些所谓的"遍历检查"。

编辑3:@RobM:是的,我们应该检查没有明显的理由使用户不应具有她所需的权限,但不必拥有该权限。我在第一次编辑中以不太直接的方式提到了这一点。但是,在某些情况下,用户应具有对文件的写许可权,而并非由于文件系统损坏,程序行为不当或者自己的错误而引起的。

回答

如果无法确定文件是否被锁定,请尝试使用Unlocker,它是一个非常有用的免费实用程序,它向我们显示锁定文件的过程,并在需要时强制我们进行解锁。

回答

在Vista上,也可能是因为它是从互联网上下载的,因此被"标记"为不安全的,并且我们必须在其资源管理器属性对话框中单击"取消阻止"按钮?

回答

让我们对此进行一些更改。如果程序试图写入文件而失败,则需要将文件的位置更改为用户可以写入的位置,或者在程序启动时检查正确的权限,如果用户不这样做则拒绝运行拥有他们。践踏系统权限不是答案。