Java使用PosixFilePermission设置文件权限
时间:2020-02-23 14:36:50 来源:igfitidea点击:
Java File类可以设置文件权限,但用途不多。
最大的缺点是,您可以将文件权限分为两组用户-所有者和其他所有人。
您无法为网上论坛和其他用户设置不同的文件权限。
Java设置文件权限
Java 7引入了PosixFilePermission枚举和java.nio.file.Files包含一个setPosixFilePermissions(Path path,Set <PosixFilePermission> perms)方法,可用于轻松设置文件权限。
这是一个简单的程序,清楚地说明了为什么PosixFilePermission更好。
FilePermissions.java
package com.theitroad.files; import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; import java.nio.file.attribute.PosixFilePermission; import java.util.HashSet; import java.util.Set; public class FilePermissions { /** * File Permissions Java Example using File and PosixFilePermission * @param args * @throws IOException */ public static void main(String[] args) throws IOException { File file = new File("/Users/hyman/temp.txt"); //set application user permissions to 455 file.setExecutable(false); file.setReadable(false); file.setWritable(true); //change permission to 777 for all the users //no option for group and others file.setExecutable(true, false); file.setReadable(true, false); file.setWritable(true, false); //using PosixFilePermission to set file permissions 777 Set<PosixFilePermission> perms = new HashSet<PosixFilePermission>(); //add owners permission perms.add(PosixFilePermission.OWNER_READ); perms.add(PosixFilePermission.OWNER_WRITE); perms.add(PosixFilePermission.OWNER_EXECUTE); //add group permissions perms.add(PosixFilePermission.GROUP_READ); perms.add(PosixFilePermission.GROUP_WRITE); perms.add(PosixFilePermission.GROUP_EXECUTE); //add others permissions perms.add(PosixFilePermission.OTHERS_READ); perms.add(PosixFilePermission.OTHERS_WRITE); perms.add(PosixFilePermission.OTHERS_EXECUTE); Files.setPosixFilePermissions(Paths.get("/Users/hyman/run.sh"), perms); } }
从上面的示例可以明显看出,PosixFilePermission提供了更多选项,并且代码更具可读性。