在Java中,我正在动态创建一组文件,并且想要更改linux / unix文件系统上这些文件的文件许可权。我希望能够执行的Java等效项chmod
。那可能是Java 5吗?如果是这样,怎么办?
我知道在Java 6中File
对象具有setReadable()
/ setWritable()
方法。我也知道我可以进行系统调用来做到这一点,但是如果可能的话,我想避免这种情况。
作为“新” New IO工具(NIO.2)的一部分,Java 7中提供了对文件属性的完全控制。例如,POSIX权限可以在与现有的文件设置setPosixFilePermissions()
,在文件创建与类似的方法或原子createFile()
或newByteChannel()
。
您可以使用来创建一组权限EnumSet.of()
,但是helper方法PosixFilePermissions.fromString()
将使用一种常规格式,该格式对于许多开发人员而言更易读。对于接受的API FileAttribute
,您可以使用来包装权限集PosixFilePermissions.asFileAttribute()
。
Set<PosixFilePermission> ownerWritable = PosixFilePermissions.fromString("rw-r--r--");
FileAttribute<?> permissions = PosixFilePermissions.asFileAttribute(ownerWritable);
Files.createFile(path, permissions);
在Java的早期版本中,使用自己的本机代码或exec
-ing命令行实用程序是常见的方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句