模块 java.base

接口 BasicFileAttributeView

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

public interface BasicFileAttributeView extends FileAttributeView
一个文件属性视图,提供许多文件系统共有的文件属性视图。基本的文件属性集包括 mandatoryoptional 文件属性,由 BasicFileAttributes 接口定义。

通过调用 readAttributes 方法从文件系统中检索文件属性作为 bulk operation。此类还定义了setTimes 方法来更新文件的时间属性。

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

支持的属性
Name Type
"lastModifiedTime" FileTime
“上次访问时间” FileTime
“创作时间” FileTime
“尺寸” Long
“是常规文件” Boolean
"isDirectory" Boolean
“是符号链接” Boolean
“是其他” Boolean
“文件密钥” Object

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

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

自从:
1.7
  • 方法总结

    修饰符和类型
    方法
    描述
    name()
    返回属性视图的名称。
    读取基本文件属性作为批量操作。
    void
    setTimes(FileTime lastModifiedTime, FileTime lastAccessTime, FileTime createTime)
    更新任何或所有文件的上次修改时间、上次访问时间和创建时间属性。
  • 方法详情

    • 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,则相应的时间戳不会更改。当仅更新部分而非全部时间戳属性时,实现可能需要读取文件属性的现有值。因此,此方法可能不是相对于其他文件系统操作的原子操作。读取和重写现有值也可能导致精度损失。如果所有 lastModifiedTime lastAccessTimecreateTime 参数都是 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 方法来检查对文件的写访问
      参见: