【问题标题】:Manipulating Windows file permissions in Java在 Java 中操作 Windows 文件权限
【发布时间】:2018-10-31 18:10:07
【问题描述】:

使用 Java 如何在 Windows 中操作文件的访问权限?

【问题讨论】:

    标签: java windows


    【解决方案1】:

    如果您使用 Java 6,File 类为您提供 setExecutable、setWritable 等。请参阅:http://java.sun.com/javase/6/docs/api/java/io/File.html

    在较旧的 Java 版本上,这是不可能的;你必须执行操作系统命令才能做到这一点:

    窗户:

    Runtime.getRuntime().exec("attrib -r myFile");
    

    Unix:

    Runtime.getRuntime().exec("chmod 777 myFile");
    

    【讨论】:

    • chmod 在windows 下不起作用,attrib -R 或 +R 会改变只读标志
    • 您可能希望对 Unix 权限进行更严格的限制,顺便说一句。 777给了每个人一切:-)
    • 显然,777 就是一个例子。如果有人问到有关如何使用 chmod 或 attrib 的其他问题,我很乐意回答 ;)
    • @Rich:你可能想在 Windows 上使用 cacls 而不是 attribcacls /? 在命令提示符中获取更多信息。
    【解决方案2】:

    新的 Java 7 java.nio.file.attribute 包使这一切变得更加容易。它提供了完整的文件属性集的视图,包括Posix file permissions

    【讨论】:

    • 在 Windows 7 上尝试获取 Posix 属性会抛出 UnsupportedOperationException。
    • 我们如何在不运行命令的情况下解决 windows 中的问题?是否有一个通用库可用于在所有操作系统上设置权限?
    • 这个答案有点短,但是 java.nio.file.attribute 包还包括 Windows 的 ACL 处理!
    猜你喜欢
    • 1970-01-01
    • 2012-06-02
    • 2012-02-06
    • 1970-01-01
    • 2014-07-03
    • 2010-11-19
    • 2012-05-05
    • 1970-01-01
    • 2014-09-10
    相关资源
    最近更新 更多