Spec-Zone.ru › OpenJDK 25

Интерфейс 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, содержащим набор прав доступа. В следующем примере для создания FileAttribute при создании файла используется метод asFileAttribute:

    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)
Обновляет права доступа к файлу.

Методы, объявленные в интерфейсе BasicFileAttributeView

setTimes

Методы, объявленные в интерфейсе FileOwnerAttributeView

getOwner, setOwner

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

name

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

readAttributes

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

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

Указано в:
readAttributes в интерфейсе BasicFileAttributeView
Возвращает:
атрибуты файла
Вызывает исключение:
IOException — если произошла ошибка ввода-вывода

setPermissions

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

setGroup

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

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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/25/docs/api/java.base/java/nio/file/attribute/PosixFileAttributeView.html

Spec-Zone.ru

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