使用PosixFilePermission的Java设置文件权限

Java File class has the ability to set the file permissions but it’s not versatile. The biggest drawback is that you can divide file permissions into two sets of users – owner and everybody else only. You can’t set different file permissions for group and other users.

Java File类具有设置文件许可权的能力,但是它并不通用。 最大的缺点是,您可以将文件权限分为两组用户-所有者和其他所有用户。 您无法为网上论坛和其他用户设置不同的文件权限。

Java设置文件权限 (Java Set File Permissions)

Java 7 has introduced PosixFilePermission Enum and java.nio.file.Files includes a method setPosixFilePermissions(Path path, Set<PosixFilePermission> perms) that can be used to set file permissions easily.

Java 7引入了PosixFilePermission 枚举java.nio.file.Files包含一个setPosixFilePermissions(Path path,Set <PosixFilePermission> perms)方法 ,可用于轻松设置文件权限。

Here is a simple program that clearly shows why PosixFilePermission is better.

这是一个简单的程序,清楚地说明了为什么PosixFilePermission更好。

FilePermissions.java

FilePermissions.java

package com.journaldev.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/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);
    }

}

From the above example, it’s clear that PosixFilePermission provides more options and code is more readable. If you are using Java 7 or above, you should use it for setting file permissions in java.

从上面的示例中可以明显看出,PosixFilePermission提供了更多选项,并且代码更具可读性。 如果您使用的是Java 7或更高版本,则应使用它在Java中设置文件权限。

GitHub Repository. GitHub存储库中签出更多Java IO示例。

翻译自: https://www.journaldev.com/855/java-set-file-permissions-posixfilepermission

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值