创建具有组写入权限的目录

2022-09-04 06:48:21

我在我的java程序(在linux上运行)中创建一个文件夹,其中包含File对象的mkdirs()函数。问题是该文件夹仅获取组的读取权限。我需要它还具有写入权限(以便以后能够删除其文件)。有什么办法可以做到这一点?


答案 1

一个非常简单的解决方案是:

file.setExecutable(true, false);
file.setReadable(true, false);
file.setWritable(true, false);

在上面的代码中,file 是一个 File 对象。

创建文件时,将这些文件的这些权限设置为仅供所有者使用。如果您再添加一个参数,我在上面的代码中添加的参数将仅供所有者使用,这意味着它将为所有组/世界设置权限。setExecutable(true)Executablefile.setExecutable(true, false);Executablefalse

在 Debian 和 Windows XP 上进行测试和工作。


答案 2

Java nio 可以帮助 posix 文件属性:https://docs.oracle.com/javase/8/docs/api/java/nio/file/attribute/PosixFileAttributeView.html

Path path = ...
 Set<PosixFilePermission> perms =
     EnumSet.of(OWNER_READ, OWNER_WRITE, OWNER_EXECUTE, GROUP_READ, GROUP_WRITE);
 Files.createFile(path, PosixFilePermissions.asFileAttribute(perms));

推荐