Интерфейс PosixFileAttributeView
- Все суперинтерфейсы:
-
AttributeView,BasicFileAttributeView,FileAttributeView,FileOwnerAttributeView
public interface PosixFileAttributeView extends BasicFileAttributeView, FileOwnerAttributeView
Операционные системы, реализующие стандарт 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 |
Обновляет владельца группы файла. |
void |
setPermissions |
Обновляет разрешения файла. |
Методы, объявленные в интерфейсе 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- если произошла ошибка ввода/вывода
setPermissions
void setPermissions(Set<PosixFilePermission> perms) throws IOException
- Параметры:
-
perms- новый набор разрешений - Имеет исключение:
-
ClassCastException- если набор содержит элементы, которые не являются типаPosixFilePermission -
IOException- если произошла ошибка ввода/вывода
setGroup
void setGroup(GroupPrincipal group) throws IOException
- Параметры:
-
group- новый владелец группы файла - Имеет исключение:
-
IOException- если произошла ошибка ввода/вывода
© 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/nio/file/attribute/PosixFileAttributeView.html