if (SystemUtil.getOsInfo().isWindows() || System.getProperties().getProperty("os.name").toUpperCase().contains("WINDOWS")) {
}
if (SystemUtil.getOsInfo().isLinux() || System.getProperty("os.name").toLowerCase().contains("linux")) {
setFilePermission(outputFilePath, traceid);
}
public void setFilePermission(String filePath, String traceid){
try {
// 获取文件路径
Path path = Paths.get(filePath);
// 设置文件权限集合
Set<PosixFilePermission> permissions = new HashSet<>();
permissions.add(PosixFilePermission.OWNER_READ);
permissions.add(PosixFilePermission.OWNER_WRITE);
permissions.add(PosixFilePermission.OWNER_EXECUTE);
permissions.add(PosixFilePermission.GROUP_READ);
permissions.add(PosixFilePermission.GROUP_WRITE);
permissions.add(PosixFilePermission.GROUP_EXECUTE);
permissions.add(PosixFilePermission.OTHERS_READ);
permissions.add(PosixFilePermission.OTHERS_WRITE);
permissions.add(PosixFilePermission.OTHERS_EXECUTE);
// 修改文件权限
Files.setPosixFilePermissions(path, permissions);
log.info("文件权限已成功修改");
} catch (IOException e) {
log.error("文件权限修改异常:{}", e);
}
}
导入必要的类:
java.nio.file.Files:提供文件操作相关的静态方法。
java.nio.file.Path:表示文件系统中的路径。
java.nio.file.attribute.PosixFilePermission:定义了POSIX(Unix/Linux)系统下的文件权限。
java.nio.file.attribute.PosixFilePermissions:提供了创建Set<PosixFilePermission>的工具方法。
设置文件路径:
将filePath变量设置为你要操作的文件的路径。
设置文件权限集合:
创建一个Set<PosixFilePermission>对象,用于存储文件权限。
向集合中添加需要的权限,例如OWNER_READ(所有者读权限)、OWNER_WRITE(所有者写权限)、OWNER_EXECUTE(所有者执行权限)等。
修改文件权限:
使用Files.setPosixFilePermissions(path, permissions)方法来将权限集合应用到文件上。
异常处理:
适当地捕获和处理IOException,例如文件不存在或者没有足够的权限进行操作时可能会抛出该异常。
输出信息:
当权限修改成功时,打印消息确认操作已完成。
注意事项:
权限设置:请根据实际需求调整权限集合中的内容。示例中的权限集合包括了所有者、组和其他用户的读、写、执行权限。
路径设置:确保filePath变量指向的是你要修改权限的确切文件路径。
异常处理:在实际应用中,考虑更详细的异常处理和错误检查。
通过这种方式,你可以使用Java NIO库来在Ubuntu中对生成的文件设置所需的文件权限。