Interface BasicFileAttributeView
- All Superinterfaces:
AttributeView,FileAttributeView
- All Known Subinterfaces:
DosFileAttributeView,PosixFileAttributeView
BasicFileAttributes interface.
The file attributes are retrieved from the file system as a bulk
operation by invoking the readAttributes method.
This class also defines the setTimes method to update the
file's time attributes.
Where dynamic access to file attributes is required, the attributes supported by this attribute view have the following names and types:
Name Type "lastModifiedTime" FileTime"lastAccessTime" FileTime"creationTime" FileTime"size" Long"isRegularFile" Boolean"isDirectory" Boolean"isSymbolicLink" Boolean"isOther" Boolean"fileKey" Object
The getAttribute method may be
used to read any of these attributes as if by invoking the readAttributes() method.
The setAttribute method may be
used to update the file's last modified time, last access time or create time
attributes as if by invoking the setTimes method.
- Since:
- 1.7
-
Method Summary
Modifier and TypeMethodDescriptionname()Returns the name of the attribute view.Reads the basic file attributes as a bulk operation.voidUpdates any or all of the file's last modified time, last access time, and create time attributes.
-
Method Details
-
name
String name()Returns the name of the attribute view. Attribute views of this type have the name"basic".- Specified by:
namein interfaceAttributeView- Returns:
- the name of the attribute view
-
readAttributes
Reads the basic file attributes as a bulk operation.It is implementation specific if all file attributes are read as an atomic operation with respect to other file system operations.
- Returns:
- the file attributes
- Throws:
IOException- if an I/O error occurs
-
setTimes
void setTimes(FileTime lastModifiedTime, FileTime lastAccessTime, FileTime createTime) throws IOException Updates any or all of the file's last modified time, last access time, and create time attributes.This method updates the file's timestamp attributes. The values are converted to the epoch and precision supported by the file system. Converting from finer to coarser granularities results in precision loss. The behavior of this method when attempting to set a timestamp that is not supported or to a value that is outside the range supported by the underlying file store is not defined. It may or not fail by throwing an
IOException.If any of the
lastModifiedTime,lastAccessTime, orcreateTimeparameters has the valuenullthen the corresponding timestamp is not changed. An implementation may require to read the existing values of the file attributes when only some, but not all, of the timestamp attributes are updated. Consequently, this method may not be an atomic operation with respect to other file system operations. Reading and re-writing existing values may also result in precision loss. If all of thelastModifiedTime,lastAccessTimeandcreateTimeparameters arenullthen this method has no effect.Usage Example: Suppose we want to change a file's last access time.
Path path = ... FileTime time = ... Files.getFileAttributeView(path, BasicFileAttributeView.class).setTimes(null, time, null);- Parameters:
lastModifiedTime- the new last modified time, ornullto not change the valuelastAccessTime- the last access time, ornullto not change the valuecreateTime- the file's create time, ornullto not change the value- Throws:
IOException- if an I/O error occurs- See Also:
-