DosFileAttributeView (Java SE 26 & JDK 26)
Description: declaration: module: java.base, package: java.nio.file.attribute, interface: DosFileAttributeView
Keywords: java.nio.file.attribute.DosFileAttributeView interface

# Interface DosFileAttributeView

All Superinterfaces:
  `AttributeView, BasicFileAttributeView, FileAttributeView`

public interface DosFileAttributeView extends BasicFileAttributeView
A file attribute view that provides a view of the legacy "DOS" file attributes. These attributes are supported by file systems such as the File Allocation Table (FAT) format commonly used in consumer devices.

A `DosFileAttributeView` is a `BasicFileAttributeView` that additionally supports access to the set of DOS attribute flags that are used to indicate if the file is read-only, hidden, a system file, or archived.

Where dynamic access to file attributes is required, the attributes supported by this attribute view are as defined by `BasicFileAttributeView`, and in addition, the following attributes are supported:

> Supported attributes
> Name | Type
> --- | ---
> readonly | `Boolean`
> hidden | `Boolean`
> system | `Boolean`
> archive | `Boolean`

The `getAttribute` method may be used to read any of these attributes, or any of the attributes defined by `BasicFileAttributeView` 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 defined by `BasicFileAttributeView`. It may also be used to update the DOS attributes as if by invoking the `setReadOnly`, `setHidden`, `setSystem`, and `setArchive` methods respectively.

Since:
  1.7

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `name()`
  Returns the name of the attribute view.
  `DosFileAttributes`
  `readAttributes()`
  Reads the basic file attributes as a bulk operation.
  `void`
  `setArchive(boolean value)`
  Updates the value of the archive attribute.
  `void`
  `setHidden(boolean value)`
  Updates the value of the hidden attribute.
  `void`
  `setReadOnly(boolean value)`
  Updates the value of the read-only attribute.
  `void`
  `setSystem(boolean value)`
  Updates the value of the system attribute.

  ### Methods declared in interface BasicFileAttributeView

  `setTimes`
  Modifier and Type
  Method
  Description
  `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.

- ## Method Details

  - ### name

    String name()
    Returns the name of the attribute view. Attribute views of this type have the name `"dos"`.
    Specified by:
      `name` in interface `AttributeView`
    Specified by:
      `name` in interface `BasicFileAttributeView`
    Returns:
      the name of the attribute view

  - ### readAttributes

    DosFileAttributes readAttributes() throws IOException
    Description copied from interface: `BasicFileAttributeView`
    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.

    Specified by:
      `readAttributes` in interface `BasicFileAttributeView`
    Returns:
      the file attributes
    Throws:
      `IOException` - if an I/O error occurs

  - ### setReadOnly

    void setReadOnly(boolean value) throws IOException
    Updates the value of the read-only attribute.

    It is implementation specific if the attribute can be updated as an atomic operation with respect to other file system operations. An implementation may, for example, require to read the existing value of the DOS attribute in order to update this attribute.

    Parameters:
      `value` - the new value of the attribute
    Throws:
      `IOException` - if an I/O error occurs

  - ### setHidden

    void setHidden(boolean value) throws IOException
    Updates the value of the hidden attribute.

    It is implementation specific if the attribute can be updated as an atomic operation with respect to other file system operations. An implementation may, for example, require to read the existing value of the DOS attribute in order to update this attribute.

    Parameters:
      `value` - the new value of the attribute
    Throws:
      `IOException` - if an I/O error occurs

  - ### setSystem

    void setSystem(boolean value) throws IOException
    Updates the value of the system attribute.

    It is implementation specific if the attribute can be updated as an atomic operation with respect to other file system operations. An implementation may, for example, require to read the existing value of the DOS attribute in order to update this attribute.

    Parameters:
      `value` - the new value of the attribute
    Throws:
      `IOException` - if an I/O error occurs

  - ### setArchive

    void setArchive(boolean value) throws IOException
    Updates the value of the archive attribute.

    It is implementation specific if the attribute can be updated as an atomic operation with respect to other file system operations. An implementation may, for example, require to read the existing value of the DOS attribute in order to update this attribute.

    Parameters:
      `value` - the new value of the attribute
    Throws:
      `IOException` - if an I/O error occurs