Module java.base

Interface BasicFileAttributeView

所有超级接口:
AttributeView, FileAttributeView
所有已知子接口:
DosFileAttributeView, PosixFileAttributeView

public interface BasicFileAttributeView extends FileAttributeView
一个文件属性视图,提供了对许多文件系统中常见的一组文件属性的视图。基本文件属性集包括由BasicFileAttributes接口定义的强制可选文件属性。

通过调用readAttributes方法,可以将文件属性作为批量操作从文件系统中检索。该类还定义了setTimes方法来更新文件的时间属性。

如果需要动态访问文件属性,此属性视图支持的属性具有以下名称和类型:

支持的属性
名称 类型
"lastModifiedTime" FileTime
"lastAccessTime" FileTime
"creationTime" FileTime
"size" Long
"isRegularFile" Boolean
"isDirectory" Boolean
"isSymbolicLink" Boolean
"isOther" Boolean
"fileKey" Object

可以使用getAttribute方法读取这些属性中的任何一个,就像调用readAttributes()方法一样。

可以使用setAttribute方法更新文件的最后修改时间、最后访问时间或创建时间属性,就像调用setTimes方法一样。

自 JDK 版本:
1.7
  • Method Summary

    Modifier and Type
    Method
    Description
    name()
    返回属性视图的名称。
    作为批量操作读取基本文件属性。
    void
    setTimes(FileTime lastModifiedTime, FileTime lastAccessTime, FileTime createTime)
    更新文件的最后修改时间、最后访问时间和创建时间属性中的任何一个或全部。
  • Method Details

    • name

      String name()
      返回属性视图的名称。此类型的属性视图的名称为"basic"
      指定者:
      name 在接口 AttributeView
      返回:
      属性视图的名称
    • readAttributes

      BasicFileAttributes readAttributes() throws IOException
      作为批量操作读取基本文件属性。

      如果所有文件属性作为原子操作读取,与其他文件系统操作相比,这是实现特定的。

      返回:
      文件属性
      抛出:
      IOException - 如果发生 I/O 错误
      SecurityException - 在默认提供程序的情况下,安装了安全管理器,将调用其checkRead方法来检查对文件的读取访问权限
    • setTimes

      void setTimes(FileTime lastModifiedTime, FileTime lastAccessTime, FileTime createTime) throws IOException
      更新文件的最后修改时间、最后访问时间和创建时间属性中的任何一个或全部。

      此方法更新文件的时间戳属性。这些值将转换为文件系统支持的时代和精度。从更精细到更粗粒度的转换会导致精度丢失。当尝试设置不受支持的时间戳或超出底层文件存储支持范围的值时,此方法的行为未定义。它可能会通过抛出IOException来失败,也可能不会失败。

      如果lastModifiedTimelastAccessTimecreateTime参数中的任何一个具有值null,则相应的时间戳不会更改。当只更新某些时间戳属性而不是全部时间戳属性时,实现可能需要读取文件属性的现有值。因此,此方法可能不是与其他文件系统操作原子操作。读取和重新写入现有值也可能导致精度丢失。如果lastModifiedTimelastAccessTimecreateTime参数都为null,则此方法不起作用。

      使用示例: 假设我们想要更改文件的最后访问时间。

          Path path = ...
          FileTime time = ...
          Files.getFileAttributeView(path, BasicFileAttributeView.class).setTimes(null, time, null);
      
      参数:
      lastModifiedTime - 新的最后修改时间,或null表示不更改该值
      lastAccessTime - 最后访问时间,或null表示不更改该值
      createTime - 文件的创建时间,或null表示不更改该值
      抛出:
      IOException - 如果发生 I/O 错误
      SecurityException - 在默认提供程序的情况下,安装了安全管理器,将调用其checkWrite方法来检查对文件的写访问权限
      参见: