发布于2021-05-29 19:54 阅读(1133) 评论(0) 点赞(10) 收藏(5)
参考文章
https://blog.csdn.net/lv8549510/article/details/85406215
https://blog.csdn.net/cunchi4221/article/details/107473762
文件的权限针对三类对象进行定义
owner 属主,缩写u
group 属组,缩写g
other 其他,缩写o
每个文件针对每类访问者定义了三种主要权限
r:Read 读
w:Write 写
x:eXecute 执行
PosixFilePermission是一个枚举类,代表着文件的基本权限。
public enum PosixFilePermission {
/**
* 文件所有者的读权限
*/
OWNER_READ,
/**
* 文件所有者写权限。
*/
OWNER_WRITE,
/**
* 文件所有者执行权限
*/
OWNER_EXECUTE,
/**
* 文件所属组成员读权限
*/
GROUP_READ,
/**
* 文件所属组成员写权限
*/
GROUP_WRITE,
/**
* 文件所属组成员执行权限
*/
GROUP_EXECUTE,
/**
* 其他账号读权限。
*/
OTHERS_READ,
/**
* 其他账号写权限。
*/
OTHERS_WRITE,
/**
* 其他账号执行权限。
*/
OTHERS_EXECUTE;
}
Java 7引入了PosixFilePermission Enum
与java.nio.file.Files
包含的一个方法setPosixFilePermissions(Path path,Set <PosixFilePermission> perms)
可用于设置文件权限。
这种方式原生支持LINUX和UNIX低层系统
我在win上运行会抛出UnsupportedOperationException
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.nio.file.attribute.PosixFilePermissions;
import java.util.HashSet;
import java.util.Set;
/**
* @description: PosixFilePermission的Java设置文件权限实例
*/
public class FilePermissions {
/**
* 使用PosixFilePermission设置文件权限777
*
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
Set<PosixFilePermission> perms = new HashSet<>();
perms.add(PosixFilePermission.OWNER_READ);
perms.add(PosixFilePermission.OWNER_WRITE);
perms.add(PosixFilePermission.OWNER_EXECUTE);
perms.add(PosixFilePermission.GROUP_READ);
perms.add(PosixFilePermission.GROUP_WRITE);
perms.add(PosixFilePermission.GROUP_EXECUTE);
perms.add(PosixFilePermission.OTHERS_READ);
perms.add(PosixFilePermission.OTHERS_WRITE);
perms.add(PosixFilePermission.OTHERS_EXECUTE);
Files.setPosixFilePermissions(Paths.get("test/java.txt"), perms);
}
}
可见执行后的确更改了文件的权限
对比其他修改文件权限的方式 PosixFilePermission提供了更多选项,代码更具可读性。如果使用的是Java 7或更高版本,则应使用PosixFilePermission来设置文件权限。
PosixFilePermissions
仅由静态方法组成,用于对PosixFilePermission
对象进行操作。
PosixFilePermissions中有一个fromString方法
public static Set<PosixFilePermission> fromString(String perms)
//返回与给定的String表示相对应的一String权限。
perms参数是一个String权限的String。 它有9个字符被解释为三组三个。 第一组是指所有者的权限; 旁边的组权限和最后给别人。 在每组内,第一个字符为’r’ ,表示读取权限,第二个字符为’w’表示允许写入,第三个字符为’x’用于执行许可。 如果未设置权限,则相应的字符设置为’-’ 。
使用这个方法可以更简洁的操作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.nio.file.attribute.PosixFilePermissions;
import java.util.HashSet;
import java.util.Set;
/**
* @description: PosixFilePermission的Java设置文件权限,
*/
public class FilePermissions {
public static void main(String[] args) throws IOException {
Set<PosixFilePermission> perms = PosixFilePermissions.fromString("rwxr-x---");
Files.setPosixFilePermissions(Paths.get("test/test.txt"), perms);
}
}
作者:快起来搬砖啦
链接:http://www.javaheidong.com/blog/article/207256/db817e77f28344ce7667/
来源:java黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 java黑洞网 All Rights Reserved 版权所有,并保留所有权利。京ICP备18063182号-2
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!