- 所有父级接口:
AttributeView
,FileAttributeView
- 所有已知的子接口:
DosFileAttributeView
,PosixFileAttributeView
一个文件属性视图,提供许多文件系统共有的文件属性视图。基本的文件属性集包括 mandatory 和 optional 文件属性,由
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
String name()返回属性视图的名称。这种类型的属性视图的名称为"basic"
。- 指定者:
name
在接口AttributeView
中- 返回:
- 属性视图的名称
-
readAttributes
读取基本文件属性作为批量操作。如果所有文件属性都作为相对于其他文件系统操作的原子操作读取,则它是特定于实现的。
- 返回:
- 文件属性
- 抛出:
IOException
- 如果发生 I/O 错误SecurityException
- 在默认提供程序的情况下,安装了安全管理器,调用其checkRead
方法来检查对文件的读取访问
-
setTimes
void setTimes(FileTime lastModifiedTime, FileTime lastAccessTime, FileTime createTime) throws IOException 更新任何或所有文件的上次修改时间、上次访问时间和创建时间属性。此方法更新文件的时间戳属性。这些值将转换为文件系统支持的纪元和精度。从较细粒度转换为较粗粒度会导致精度损失。未定义此方法在尝试设置不受支持的时间戳或设置为超出基础文件存储支持范围的值时的行为。它可能会或不会通过抛出
IOException
来失败。如果
lastModifiedTime
、lastAccessTime
或createTime
参数中的任何一个具有值null
,则相应的时间戳不会更改。当仅更新部分而非全部时间戳属性时,实现可能需要读取文件属性的现有值。因此,此方法可能不是相对于其他文件系统操作的原子操作。读取和重写现有值也可能导致精度损失。如果所有lastModifiedTime
、lastAccessTime
和createTime
参数都是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
方法来检查对文件的写访问- 参见:
-