Интерфейс 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, содержащим набор прав доступа. В следующем примере для создания 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 |
Обновляет владельца группы файла. |
void |
setPermissions |
Обновляет права доступа к файлу. |
Методы, объявленные в интерфейсе 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— если произошла ошибка ввода-вывода
© 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