windows - 我可以为 Windows 用户提供哪些步骤来使给定文件可写

标签 windows filesystems

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

在 Windows 平台上,可能会导致文件不可写的原因是什么,以及建议最终用户/管理员采取哪些步骤来修复它。


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

另外,我不太熟悉 Windows 中如何计算权限。 - 用户是否需要对树上的每个目录或类似的目录进行写访问?

最佳答案

一些建议:

  • 无写入权限(通过文件“属性”窗口上的“安全”选项卡获取权限;您必须是文件所有者或管理员)
  • 文件已锁定(关闭所有可能打开该文件的程序,如果没有帮助,则重新启动)
  • 文件设置了只读 DOS 属性(从文件属性窗口取消设置,或使用 attrib -r;您必须是文件所有者或管理员)

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

编辑 2:从技术上讲,用户确实需要对直到根目录的所有目录的写入和执行 (chdir) 权限。 Windows 可能会跳过树上的一些递归检查作为性能优化,但您不应该依赖于此,因为管理员可以对某些用户强制执行这些所谓的“遍历检查”。

编辑3:@RobM:是的,您应该检查是否没有明显的原因表明用户不应该拥有她需要但没有的权限。我在第一次编辑中以不太直接的方式提到了这一点。但是,在某些情况下,用户应该具有文件的写入权限,但由于文件系统损坏、程序行为不当或用户自身的错误而没有写入权限。

关于windows - 我可以为 Windows 用户提供哪些步骤来使给定文件可写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37525/

相关文章:

windows - 对文件夹中的所有文件执行命令

c - C 中文本文件的奇怪错误

Windows批处理命令仅删除文件夹

linux - 如何卸载内核代码中的文件系统

linux-kernel - debugfs 在网络命名空间中不可用

matlab - 如何获取 MATLAB 中特定目录中所有目录名称和/或所有文件的列表?

c# - 使用 C# 或 C++ 确定(以编程方式)谁在 PC 上控制鼠标

windows - 列出cmd中的所有文件夹和子文件夹,但不包括文件

linux - 为什么可以在 Linux 中删除/重命名打开的文件?

c++ - 在 Linux 上创建原子文件?