为了账号安全,请及时绑定邮箱和手机立即绑定

如何以编程方式更改文件权限?

如何以编程方式更改文件权限?

子衿沉夜 2019-06-24 16:47:33
如何以编程方式更改文件权限?在Java中,我动态地创建一组文件,并希望更改Linux/Unix文件系统上这些文件的文件权限。我希望能够执行chmod..这有可能是Java 5吗?如果是,怎么做?我知道在Java 6中File对象setReadable()/setWritable()方法。我也知道我可以通过系统调用来做到这一点,但如果可能的话,我想避免这样做。
查看完整描述

3 回答

?
慕码人8056858

TA贡献1803条经验 获得超6个赞

Java 7提供了对文件属性的完全控制,作为“新IO工具的一部分(NIO.2)。例如,可以在现有文件上设置POSIX权限setPosixFilePermissions(),或者原子化地使用以下方法创建文件createFile()newByteChannel().

您可以使用EnumSet.of(),但是助手方法PosixFilePermissions.fromString()将使用一种传统的格式,这将使许多开发人员更容易阅读。对于接受FileAttribute,您可以用PosixFilePermissions.asFileAttribute().

Set<PosixFilePermission> ownerWritable = PosixFilePermissions.fromString("rw-r--r--");
FileAttribute<?> permissions = PosixFilePermissions.asFileAttribute(ownerWritable);Files.createFile(path, permissions);

在早期版本的Java中,使用您自己的本机代码,或者exec-ING命令行实用程序是常见的方法。


查看完整回答
反对 回复 2019-06-24
?
青春有我

TA贡献1784条经验 获得超8个赞

在Java 6之前,Java级别上不支持文件权限更新。您必须实现您自己的本机方法或调用。Runtime.exec()执行OS级命令,如chmod.

从Java 6开始,您可以使用File.setReadable()/File.setWritable()/File.setExecutable()若要设置文件权限,请执行以下操作。但它并不模拟允许为不同用户设置权限的POSIX文件系统。setXXX()只允许为所有者和其他所有人设置权限。

从Java 7开始,引入了POSIX文件权限。您可以像在*nix系统上所做的一样设置文件权限。语法是:

File file = new File("file4.txt");file.createNewFile();Set<PosixFilePermission> perms = new HashSet<>();
perms.add(PosixFilePermission.OWNER_READ);perms.add(PosixFilePermission.OWNER_WRITE);Files.setPosixFilePermissions(file.toPath(), perms);

此方法只能在POSIX文件系统上使用,这意味着您不能在Windows系统上调用它。

有关文件权限管理的详细信息,建议您阅读这个职位.


查看完整回答
反对 回复 2019-06-24
  • 3 回答
  • 0 关注
  • 781 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号