- 所有超级接口:
-
AttributeView
,FileAttributeView
- 所有已知子接口:
-
DosFileAttributeView
,PosixFileAttributeView
一个文件属性视图,提供了对许多文件系统中常见的一组文件属性的视图。基本文件属性集包括由
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 TypeMethodDescriptionname()
返回属性视图的名称。作为批量操作读取基本文件属性。void
更新文件的最后修改时间、最后访问时间和创建时间属性中的任何一个或全部。
-
Method Details
-
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
方法来检查对文件的写访问权限 - 参见:
-