我试图使用公共写入权限创建目录。为了简化事情,我希望它具有777
权限。这里是我的代码:Java - 无法创建具有777权限的目录(改为775)
private static FileAttribute<Set<PosixFilePermission>> DIR_PERMISSIONS;
static {
Set<PosixFilePermission> perms = new HashSet<>();
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);
DIR_PERMISSIONS = PosixFilePermissions.asFileAttribute(perms);
}
private Path ensurePath(LocalDate localDate) throws IOException {
String year = String.valueOf(localDate.getYear());
String month = String.format("%02d", localDate.getMonthValue());
Path path = Paths.get(rootDirectory, year, month);
return Files.createDirectories(path, DIR_PERMISSIONS);
}
随着rootDirectory=/tmp/data
这应该像/tmp/data/2016/01
创建文件夹,每个777
权限。相反,文件夹具有775
权限(drwxrwxr-x。),因此它们缺少公开写入。它为什么这样工作?也许JVM需要特殊的参数才能设置这样的权限? 我的系统是Fedora 24,应用程序是标准的Spring Boot应用程序,由maven插件启动。
@OlivierGrégoire这不是重复的,因为这不能解释*为什么*它出现为775. – Michael
@Michael这里的问题的主要部分是“我不能”,而不是“为什么”。在另一个主题中接受的答案是完整的如何解决这个问题。 –
@OlivierGrégoire“**为什么**它以这种方式工作?” – Michael