Spec-Zone.ru › OpenJDK 17

Интерфейс PosixFileAttributeView

Все суперинтерфейсы:
AttributeView, BasicFileAttributeView, FileAttributeView, FileOwnerAttributeView
public interface PosixFileAttributeView extends BasicFileAttributeView, FileOwnerAttributeView
Представление атрибутов файла, предоставляющее просмотр атрибутов файлов, обычно связанных с файлами в файловых системах, используемых операционными системами, которые реализуют семейство стандартов Portable Operating System Interface (POSIX).

Операционные системы, которые реализуют семейство стандартов POSIX, обычно используют файловые системы, которые имеют владельца файла, владельца группы и связанные разрешения доступа. Это представление атрибутов файла обеспечивает чтение и запись этих атрибутов.

Метод readAttributes используется для чтения атрибутов файла. Файловый owner представлен UserPrincipal, который является идентификатором владельца файла для целей контроля доступа. group-owner, представленный GroupPrincipal, является идентификатором владельца группы, где группа — это идентификатор, созданный для административных целей, чтобы определить права доступа для членов группы.

Атрибут permissions представляет собой набор разрешений доступа. Это представление атрибутов файла обеспечивает доступ к девяти битам разрешений, определённым классом PosixFilePermission. Эти девять битов разрешений определяют доступ на чтение, запись и выполнение для владельца файла, группы и других (другие — это идентификаторы, отличные от владельца и членов группы). Некоторые операционные системы и файловые системы могут предоставлять дополнительные биты разрешений, но доступ к этим дополнительным битам не определен в этом классе в этом выпуске.

Пример использования: Предположим, нам нужно вывести владельца и разрешения доступа к файлу:

     Path file = ...
     PosixFileAttributes attrs = Files.getFileAttributeView(file, PosixFileAttributeView.class)
         .readAttributes();
     System.out.format("%s %s%n",
         attrs.owner().getName(),
         PosixFilePermissions.toString(attrs.permissions()));
 

Динамический доступ

В случаях, когда требуется динамический доступ к атрибутам файла, поддерживаемые этим представлением атрибутов определяются интерфейсами BasicFileAttributeView и FileOwnerAttributeView, а также поддерживаются следующие атрибуты:

Поддерживаемые атрибуты
Название Тип
"permissions" Set<PosixFilePermission>
"group" GroupPrincipal

Метод getAttribute можно использовать для чтения любого из этих атрибутов или любого из атрибутов, определённых BasicFileAttributeView, как будто вызывается метод readAttributes().

Метод setAttribute можно использовать для обновления атрибутов последнего изменения времени файла, последнего доступа или создания времени, как определено в BasicFileAttributeView. Его также можно использовать для обновления разрешений, владельца или владельца группы, как если бы вызывали методы setPermissions, setOwner и setGroup соответственно.

Установка начальных разрешений

Реализации, поддерживающие это представление атрибутов, также могут поддерживать установку начальных разрешений при создании файла или каталога. Начальные разрешения предоставляются методам createFile или createDirectory в качестве FileAttribute с name "posix:permissions" и value, представляющим набор разрешений. В следующем примере используется метод asFileAttribute для создания FileAttribute при создании файла:

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

Если разрешения доступа устанавливаются при создании файла, то фактическое значение разрешений может отличаться от значения объекта атрибута. Причины этого зависят от реализации. Например, в системах UNIX у процесса есть маска, которая влияет на биты разрешений вновь созданных файлов. Там, где реализация поддерживает установку разрешений доступа, а файловая система поддерживает разрешения доступа, требуется, чтобы значение фактических разрешений доступа было равно или меньше значения атрибута, предоставленного методам createFile или createDirectory. Другими словами, файл может быть более защищен, чем запрошено.

С:
1.7

Краткое описание методов

Модификатор и тип Метод Описание
String name()
Возвращает имя представления атрибутов.
PosixFileAttributes readAttributes()
Читает базовые атрибуты файла как единую операцию.
void setGroup(GroupPrincipal group)
Обновляет владельца группы файла.
void setPermissions(Set<PosixFilePermission> perms)
Обновляет разрешения файла.

Методы, объявленные в интерфейсе java.nio.file.attribute.BasicFileAttributeView

setTimes

Методы, объявленные в интерфейсе java.nio.file.attribute.FileOwnerAttributeView

getOwner, setOwner

Подробное описание методов

name

String name()
Возвращает имя представления атрибутов. Представления атрибутов этого типа имеют имя "posix".
Указано в:
name в интерфейсе AttributeView
Указано в:
name в интерфейсе BasicFileAttributeView
Указано в:
name в интерфейсе FileOwnerAttributeView
Возвращает:
имя представления атрибутов

readAttributes

PosixFileAttributes readAttributes() throws IOException
Описание, скопированное из интерфейса: BasicFileAttributeView
Читает базовые атрибуты файла как единую операцию.

Реализация определяет, чтение всех атрибутов файла является атомарной операцией относительно других операций с файловой системой.

Указано в:
readAttributes в интерфейсе BasicFileAttributeView
Возвращает:
атрибуты файла
Выбрасывает:
IOException - если произошла ошибка ввода-вывода
SecurityException - В случае с поставщиком по умолчанию, если установлен менеджер безопасности, и он отклоняет RuntimePermission("accessUserInformation") или его метод checkRead отклоняет доступ на чтение к файлу.

setPermissions

void setPermissions(Set<PosixFilePermission> perms) throws IOException
Обновляет разрешения файла.
Параметры:
perms - новый набор разрешений
Выбрасывает:
ClassCastException - если набор содержит элементы, не являющиеся объектами типа PosixFilePermission
IOException - если произошла ошибка ввода-вывода
SecurityException - В случае с поставщиком по умолчанию, если установлен менеджер безопасности, и он отклоняет RuntimePermission("accessUserInformation") или его метод checkWrite отклоняет доступ на запись к файлу.

setGroup

void setGroup(GroupPrincipal group) throws IOException
Обновляет владельца группы файла.
Параметры:
group - новый владелец группы файла
Выбрасывает:
IOException - если произошла ошибка ввода-вывода
SecurityException - В случае с поставщиком по умолчанию, если установлен менеджер безопасности, и он отклоняет RuntimePermission("accessUserInformation") или его метод checkWrite отклоняет доступ на запись к файлу.

© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/nio/file/attribute/PosixFileAttributeView.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API