【问题标题】:Set the Read-only property of a File设置文件的只读属性
【发布时间】:2012-04-18 10:15:59
【问题描述】:

我正在尝试设置文件的只读属性,但它似乎不起作用。有人可以帮我理解为什么。

这是我的代码...

public class Main {
    public static void main(String[] args) {
        File f = new File("c:/ulala.txt");
        if (!f.setReadOnly()) {
            System.out.println("Grrr! Can't set file read-only.");
            return;
        }
    }
}

【问题讨论】:

  • 它是如何“不工作”的,是否有任何错误消息、异常或只是打印“Grr!无法将文件设置为只读”。 ?你的代码对我有用。文件是否存在?否则,只读设置将不起作用。您可以手动将文件设置为只读吗?如果不是,则可能是权限问题。
  • 是的,文件(ulala.txt)是存在的。
  • 但是,当我打开 Windows 资源管理器,我想在 Windows 资源管理器中检查结果时,文件仍然可以复制。
  • 当您说“文件可以复制”时,您的意思是您仍然可以将文件复制到另一个位置吗?只读仅防止覆盖文件,而不是复制它(即读取内容并在其他地方写入副本)。
  • ooooh...你的意思是,只读不能使文件不被复制??那么,如何使文件无法通过权限方式复制?哇,谢谢你之前

标签: java readonly


【解决方案1】:

文件必须存在并且用户必须有权更改文件的权限。您可以使用f.exists() 测试文件是否存在。

【讨论】: