Java File类具有设置文件权限的功能。我们可以将文件权限分为两组用户 - 所有者和其他所有人。无法为组和其他用户设置不同的文件权限。
Java设置文件权限Java 7引入了PosixFilePermission Enum,java.nio.file.Files包含一个方法setPosixFilePermissions(Path path,Set perms)可用于设置文件权限。
下面是一个简单的程序,清楚地显示了为什么使用PosixFilePermission更好。

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 {

    /**
     * Java使用File和PosixFilePermission设置文件权限的示例
     * @param args
     * @throws IOException 
     */
    public static void main(String[] args) throws IOException {
        File file = new File("/Users/pankaj/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/pankaj/run.sh"), perms);
    }

}

从上面的例子可以看出,PosixFilePermission提供了更多选项,代码更具可读性。如果使用的是Java 7或更高版本,则应使用PosixFilePermission来设置文件权限。原文出自【易百教程】,商业转载请联系作者获得授权,非商业请保留原文链接:https://www.yiibai.com/java/java-set-file-permissions-posixfilepermission.html

文档更新时间: 2019-09-05 07:07   作者:月影鹏鹏