Spec-Zone.ru › OpenJDK 21

Интерфейс 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 процесс имеет umask, который влияет на биты разрешений вновь созданных файлов. Если реализация поддерживает установку прав доступа, а базовая файловая система поддерживает права доступа, то требуется, чтобы значение фактических прав доступа было равно или меньше значения атрибута, предоставленного методам 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, 2023, 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/21/docs/api/java.base/java/nio/file/attribute/PosixFileAttributeView.html

Spec-Zone.ru

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