You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java Spring中使用ZXing二维码生成器如何将二维码文件权限设为755

Java生成二维码自动修改输出文件权限方案

你当前输出的文件权限由JDK默认的文件创建规则、系统umask共同决定,可以通过Java NIO提供的文件操作接口直接编程修改,无需手动执行chmod命令。

适配类Unix系统(Linux、macOS)方案

使用POSIX权限API直接设置目标文件权限,修改后的代码如下:

import java.nio.file.Files;
import java.nio.file.attribute.PosixFilePermission;
import java.nio.file.attribute.PosixFilePermissions;
import java.util.Set;
// 你原有需要的其他import保持不变

public static void generateQRCodeImage(String text, int width, int height, String filePath)
            throws WriterException, IOException {
        QRCodeWriter qrCodeWriter = new QRCodeWriter();
        BitMatrix bitMatrix = qrCodeWriter.encode(text, BarcodeFormat.QR_CODE, width, height);

        Path path = FileSystems.getDefault().getPath(filePath);
   
        MatrixToImageWriter.writeToPath(bitMatrix, "jpg", path);

        // 新增权限设置代码
        // 此处示例设置权限为 所有者读写、组可读、其他用户可读,对应权限值644,表现为-rw-r--r--
        Set<PosixFilePermission> perms = PosixFilePermissions.fromString("rw-r--r--");
        Files.setPosixFilePermissions(path, perms);
    }

你可以根据自己的需求调整fromString的入参:

  • 要设置所有人可读可写,传入rw-rw-rw- 对应权限值666
  • 要设置仅所有者读写、组无权限、其他无权限,传入rw------- 对应权限值600

适配Windows系统方案

Windows不支持POSIX权限规则,可通过Dos属性接口调整权限,示例代码如下:

// 写入文件完成后新增如下代码
// 取消文件只读属性
Files.setAttribute(path, "dos:readonly", false);
// 如需要设置隐藏属性可以改为 Files.setAttribute(path, "dos:hidden", true);

注意事项

  • 权限修改操作必须放在文件写入完成后执行,避免文件未创建导致报错
  • 运行代码的用户需要拥有目标路径的文件权限修改权限,否则会抛出权限异常

内容的提问来源于stack exchange,提问作者lauwis premium

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 18:54:05