Spec-Zone.ru › OpenJDK 27

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

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

setTimes
Модификатор и тип Метод Описание
void setTimes(FileTime lastModifiedTime, FileTime lastAccessTime, FileTime createTime)
Обновляет любой или все атрибуты времени последнего изменения, последнего доступа и создания файла.

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

getOwner, setOwner
Модификатор и тип Метод Описание
UserPrincipal getOwner()
Читает владельца файла.
void setOwner(UserPrincipal owner)
Обновляет владельца файла.

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

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, 2026, 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.

Spec-Zone.ru

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