创建具有组写入权限的目录
我在我的java程序(在linux上运行)中创建一个文件夹,其中包含File对象的mkdirs()函数。问题是该文件夹仅获取组的读取权限。我需要它还具有写入权限(以便以后能够删除其文件)。有什么办法可以做到这一点?
我在我的java程序(在linux上运行)中创建一个文件夹,其中包含File对象的mkdirs()函数。问题是该文件夹仅获取组的读取权限。我需要它还具有写入权限(以便以后能够删除其文件)。有什么办法可以做到这一点?
一个非常简单的解决方案是:
file.setExecutable(true, false);
file.setReadable(true, false);
file.setWritable(true, false);
在上面的代码中,file 是一个 File 对象。
创建文件时,将这些文件的这些权限设置为仅供所有者使用。如果您再添加一个参数,我在上面的代码中添加的参数将仅供所有者使用,这意味着它将为所有组/世界设置权限。setExecutable(true)
Executable
file.setExecutable(true, false);
Executable
false
在 Debian 和 Windows XP 上进行测试和工作。
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));