This FileAttributeView provides a view of a file's user-defined
attributes as a set of name/value pairs, where the attribute name is
represented by a String. An implementation may require to encode and
decode from the platform or file system representation when accessing the
attribute. The value has opaque content. This attribute view defines the
read and write methods to read the value into
or write from a ByteBuffer. This FileAttributeView is not
intended for use where the size of an attribute value is larger than Integer#MAX_VALUE.
The supportsFileAttributeView method may be used to test if a specific FileStore supports the storage of user-defined
attributes.
Where dynamic access to file attributes is required, the getAttribute method may be used to read
the attribute value. The attribute value is returned as a byte array (byte[]).
The setAttribute method may be used
to write the value of a user-defined attribute from a buffer (as if by
invoking the write method), or byte array (byte[]).
| Modifier and Type | Method and Description |
|---|---|
| public void | |
| public List | Returns: An unmodifiable list containing the names of the file's user-definedReturns a list containing the names of the user-defined attributes. |
| public String | name()
Redeclares java. Returns the name of this attribute view. |
| public int | Returns: The number of bytes read, possibly zeroThe attribute name name, ByteBuffer The destination buffer dst)Read the value of a user-defined attribute into a buffer. |
| public int | |
| public int | Returns: The number of bytes written, possibly zeroThe attribute name name, ByteBuffer The buffer containing the attribute value src)Writes the value of a user-defined attribute from a buffer. |
| delete | back to summary |
|---|---|
| public void delete(String name) throws IOException Deletes a user-defined attribute.
| |
| list | back to summary |
|---|---|
| public List Returns a list containing the names of the user-defined attributes.
| |
| name | back to summary |
|---|---|
| public String name() Redeclares java. Returns the name of this attribute view. Attribute views of this type
have the name
| |
| read | back to summary |
|---|---|
| public int read(String name, ByteBuffer dst) throws IOException Read the value of a user-defined attribute into a buffer. This method reads the value of the attribute into the given buffer
as a sequence of bytes, failing if the number of bytes remaining in
the buffer is insufficient to read the complete attribute value. The
number of bytes transferred into the buffer is Usage Example:
Suppose we want to read a file's MIME type that is stored as a user-defined
attribute with the name " UserDefinedFileAttributeView view = Files.getFileAttributeView(path, UserDefinedFileAttributeView.class); String name = "user.mimetype"; ByteBuffer buf = ByteBuffer.allocate(view.size(name)); view.read(name, buf); buf.flip(); String value = Charset.defaultCharset().decode(buf).toString();
| |
| size | back to summary |
|---|---|
| public int size(String name) throws IOException Returns the size of the value of a user-defined attribute.
| |
| write | back to summary |
|---|---|
| public int write(String name, ByteBuffer src) throws IOException Writes the value of a user-defined attribute from a buffer. This method writes the value of the attribute from a given buffer as
a sequence of bytes. The size of the value to transfer is If an attribute of the given name already exists then its value is replaced. If the attribute does not exist then it is created. It is implementation specific if a test to check for the existence of the attribute and the creation of attribute are atomic with respect to other file system activities. Where there is insufficient space to store the attribute, or the
attribute name or value exceed an implementation specific maximum size
then an Usage Example: Suppose we want to write a file's MIME type as a user-defined attribute: UserDefinedFileAttributeView view = Files.getFileAttributeView(path, UserDefinedFileAttributeView.class); view.write("user.mimetype", Charset.defaultCharset().encode("text/html"));
| |