Spec-Zone.ru › OpenJDK 8

Интерфейс 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, 2020, 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