Как установить права доступа к файлам с помощью Java NIO2 в Windows? - PullRequest
0 голосов
/ 25 сентября 2019

Существуют ли способы установки прав доступа к файлам с помощью java8 NIO2 в Windows, отличные от этой?

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

1 Ответ

1 голос
/ 25 сентября 2019

Методы File, которые устанавливают различные атрибуты: setExecutable, setReadable, setReadOnly, setWritable, заменяются методом Files setAttribute (Path, String, Object, LinkOption ...) .

Пример использования:

public void setFileAttributes() throws IOException {
  Path path = ...

  UserPrincipal user = path.getFileSystem().getUserPrincipalLookupService().lookupPrincipalByName("user");
  AclFileAttributeView view = Files.getFileAttributeView(path, AclFileAttributeView.class);
  AclEntry entry = AclEntry.newBuilder()
          .setType(ALLOW)
          .setPrincipal(user)
          .setPermissions(Set.of(READ_DATA, EXECUTE, WRITE_DATA))
          .build();
  List<AclEntry> acl = view.getAcl();
  acl.add(0, entry);

  Files.setAttribute(path, "acl:acl", acl);
}

Подробнее см. AclFileAttributeView .

...