Интерфейс 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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/nio/file/attribute/PosixFileAttributeView.html