模块  java.base

Interface PosixFileAttributeView

  • All Superinterfaces:
    AttributeView , BasicFileAttributeView , FileAttributeView , FileOwnerAttributeView

    public interface PosixFileAttributeView
    extends BasicFileAttributeView, FileOwnerAttributeView
    文件属性视图,提供通常与实现可移植操作系统接口(POSIX)标准系列的操作系统所使用的文件系统上的文件相关联的文件属性的视图。

    实现POSIX系列标准的操作系统通常使用具有文件所有者 , 组所有者和相关访问权限的文件系统。 此文件属性视图提供对这些属性的读写访问权限。

    readAttributes方法用于读取文件的属性。 该文件owner由a表示UserPrincipal是用于访问控制的目的,该文件的所有者的身份。 的group-owner ,用a表示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所定义,此外,还支持以下属性:

    Supported attributes
    Name Type
    "permissions" Set<PosixFilePermission>
    "group" GroupPrincipal

    getAttribute方法可用于读取任何这些属性,或BasicFileAttributeView定义的任何属性, 就像调用readAttributes()方法一样。

    setAttribute方法可用于更新文件的上次修改时间,上次访问时间或创建时间属性,如BasicFileAttributeView所定义。 它也可用于通过调用来更新权限,拥有者,或好象基的所有者setPermissions , setOwner ,和setGroup分别方法。

    设置初始权限

    支持此属性视图的实现也可能支持在创建文件或目录时设置初始权限。 初始权限以FileAttribute ( name "posix:permissions"和value (权限集)提供给createFile或createDirectory方法。 以下示例在创建文件时使用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