Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Methods](https://developer.android.com/reference/java/nio/file/attribute/BasicFileAttributeView#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/java/nio/file/attribute/BasicFileAttributeView#inhmethods)

# BasicFileAttributeView


`
public


interface
BasicFileAttributeView
`


`


implements

https://developer.android.com/reference/java/nio/file/attribute/FileAttributeView


`

|---|
| java.nio.file.attribute.BasicFileAttributeView |

|---|
| Known indirect subclasses [DosFileAttributeView](https://developer.android.com/reference/java/nio/file/attribute/DosFileAttributeView), [PosixFileAttributeView](https://developer.android.com/reference/java/nio/file/attribute/PosixFileAttributeView) |---|---| | [DosFileAttributeView](https://developer.android.com/reference/java/nio/file/attribute/DosFileAttributeView) | A file attribute view that provides a view of the legacy "DOS" file attributes. | | [PosixFileAttributeView](https://developer.android.com/reference/java/nio/file/attribute/PosixFileAttributeView) | A file attribute view that provides a view of the file attributes commonly associated with files on file systems used by operating systems that implement the Portable Operating System Interface (POSIX) family of standards. | |

<br />

*** ** * ** ***

A file attribute view that provides a view of a *basic set* of file
attributes common to many file systems. The basic set of file attributes
consist of *mandatory* and *optional* file attributes as
defined by the `https://developer.android.com/reference/java/nio/file/attribute/BasicFileAttributes` interface.

The file attributes are retrieved from the file system as a *bulk
operation* by invoking the `https://developer.android.com/reference/java/nio/file/attribute/BasicFileAttributeView#readAttributes()` method.
This class also defines the `https://developer.android.com/reference/java/nio/file/attribute/BasicFileAttributeView#setTimes(java.nio.file.attribute.FileTime,%20java.nio.file.attribute.FileTime,%20java.nio.file.attribute.FileTime)` 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" | `https://developer.android.com/reference/java/nio/file/attribute/FileTime` |
> | "lastAccessTime" | `https://developer.android.com/reference/java/nio/file/attribute/FileTime` |
> | "creationTime" | `https://developer.android.com/reference/java/nio/file/attribute/FileTime` |
> | "size" | `https://developer.android.com/reference/java/lang/Long` |
> | "isRegularFile" | `https://developer.android.com/reference/java/lang/Boolean` |
> | "isDirectory" | `https://developer.android.com/reference/java/lang/Boolean` |
> | "isSymbolicLink" | `https://developer.android.com/reference/java/lang/Boolean` |
> | "isOther" | `https://developer.android.com/reference/java/lang/Boolean` |
> | "fileKey" | `https://developer.android.com/reference/java/lang/Object` |
> |---|---|
> [Supported attributes]

The `https://developer.android.com/reference/java/nio/file/Files#getAttribute(java.nio.file.Path,%20java.lang.String,%20java.nio.file.LinkOption[])` method may be
used to read any of these attributes as if by invoking the `https://developer.android.com/reference/java/nio/file/attribute/BasicFileAttributeView#readAttributes()` method.

The `https://developer.android.com/reference/java/nio/file/Files#setAttribute(java.nio.file.Path,%20java.lang.String,%20java.lang.Object,%20java.nio.file.LinkOption[])` method may be
used to update the file's last modified time, last access time or create time
attributes as if by invoking the `https://developer.android.com/reference/java/nio/file/attribute/BasicFileAttributeView#setTimes(java.nio.file.attribute.FileTime,%20java.nio.file.attribute.FileTime,%20java.nio.file.attribute.FileTime)` method.

## Summary

| ### Public methods ||
|---|---|
| ` abstract https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/nio/file/attribute/BasicFileAttributeView#name()() ` Returns the name of the attribute view. |
| ` abstract https://developer.android.com/reference/java/nio/file/attribute/BasicFileAttributes` | ` https://developer.android.com/reference/java/nio/file/attribute/BasicFileAttributeView#readAttributes()() ` Reads the basic file attributes as a bulk operation. |
| ` abstract void` | ` https://developer.android.com/reference/java/nio/file/attribute/BasicFileAttributeView#setTimes(java.nio.file.attribute.FileTime,%20java.nio.file.attribute.FileTime,%20java.nio.file.attribute.FileTime)(https://developer.android.com/reference/java/nio/file/attribute/FileTime lastModifiedTime, https://developer.android.com/reference/java/nio/file/attribute/FileTime lastAccessTime, https://developer.android.com/reference/java/nio/file/attribute/FileTime createTime) ` Updates any or all of the file's last modified time, last access time, and create time attributes. |

| ### Inherited methods |
|---|---|
| From interface ` https://developer.android.com/reference/java/nio/file/attribute/AttributeView ` |---|---| | ` abstract https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/nio/file/attribute/AttributeView#name()() ` Returns the name of the attribute view. | ||

## Public methods

### name

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public abstract String name ()
```

Returns the name of the attribute view. Attribute views of this type
have the name `"basic"`.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | the name of the attribute view <br /> |

### readAttributes

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public abstract BasicFileAttributes 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.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/nio/file/attribute/BasicFileAttributes` | the file attributes <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/io/IOException` | if an I/O error occurs |
| `https://developer.android.com/reference/java/lang/SecurityException` | In the case of the default provider, a security manager is installed, its `https://developer.android.com/reference/java/lang/SecurityManager#checkRead(java.lang.String)` method is invoked to check read access to the file |

### setTimes

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public abstract void setTimes (FileTime lastModifiedTime, 
                FileTime lastAccessTime, 
                FileTime createTime)
```

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 result 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`,
or `createTime` parameters has the value `null` then 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 the `lastModifiedTime`, `lastAccessTime` and `createTime` parameters are `null` then
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);
```

<br />

<br />

| Parameters ||
|---|---|
| `lastModifiedTime` | `FileTime`: the new last modified time, or `null` to not change the value <br /> |
| `lastAccessTime` | `FileTime`: the last access time, or `null` to not change the value <br /> |
| `createTime` | `FileTime`: the file's create time, or `null` to not change the value <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/io/IOException` | if an I/O error occurs |
| `https://developer.android.com/reference/java/lang/SecurityException` | In the case of the default provider, a security manager is installed, its `https://developer.android.com/reference/java/lang/SecurityManager#checkWrite(java.lang.String)` method is invoked to check write access to the file |

**See also:**

- `https://developer.android.com/reference/java/nio/file/Files#setLastModifiedTime(java.nio.file.Path,%20java.nio.file.attribute.FileTime)`