Java修改Linux系统的文件权限

文章目录

之所以写这篇文章是因为,最一开始是直接用输出流生成文件,然后用Runtime.getRuntime().exec("chmod 777 " + xml);将文件授权,因为文件要通过ftp获取,所以用这种方式一开始一直获取不到,然后用命令获取生成的文件是可以的,经检查,生成文件后,虽然执行修改文件权限的代码,但是文件的权限没有及时生效,过了几十秒才会生效,所以当拉取时不会拉取到,所以有了下面的方案,先生成文件,使用下面的方式修改文件的权限,然后再在文件中添加内容,文件获取不到的问题解决

Document doc = new Document(aid);
Format format = Format.getCompactFormat();
format.setEncoding("UTF-8");
format.setIndent(" ");

String name = programCode;
out = new XMLOutputter(format);

String xmlPath = ; // 文件路径
File file = new File(xmlPath);
file.createNewFile();
file.setReadable(true);
// 下面的是设置权限的重点
Path path = Paths.get(xmlPath);

Set perms = Files.readAttributes(path, PosixFileAttributes.class).permissions();
perms.add(PosixFilePermission.OWNER_WRITE);
perms.add(PosixFilePermission.OWNER_READ);
perms.add(PosixFilePermission.OWNER_EXECUTE);
perms.add(PosixFilePermission.GROUP_WRITE);
perms.add(PosixFilePermission.GROUP_READ);
perms.add(PosixFilePermission.GROUP_EXECUTE);
perms.add(PosixFilePermission.OTHERS_WRITE);
perms.add(PosixFilePermission.OTHERS_READ);
perms.add(PosixFilePermission.OTHERS_EXECUTE);
Files.setPosixFilePermissions(path, perms);
// 下面输出流的第二个参数可以不用加,会直接里面的内容,而不改变文件的权限
FileOutputStream fileOutputStream = new FileOutputStream(file);
out.output(doc, fileOutputStream);
fileOutputStream.close();
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值