java.nio.file.attribute

Interface UserDefinedFileAttributeView

  • All Superinterfaces:
    AttributeView, FileAttributeView

    public interface UserDefinedFileAttributeView
    extends FileAttributeView
    A file attribute view that provides a view of a file's user-defined attributes, sometimes known as extended attributes. User-defined file attributes are used to store metadata with a file that is not meaningful to the file system. It is primarily intended for file system implementations that support such a capability directly but may be emulated. The details of such emulation are highly implementation specific and therefore not specified.

    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.

    User-defined attributes may be used in some implementations to store security related attributes so consequently, in the case of the default provider at least, all methods that access user-defined attributes require the RuntimePermission("accessUserDefinedAttributes") permission when a security manager is installed.

    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[]).

    Since:
    1.7
    • Method Detail

      • name

        String name()
        Returns the name of this attribute view. Attribute views of this type have the name "user".
        Specified by:
        name in interface AttributeView
      • list

        List<String> list()
                          throws IOException
        Returns a list containing the names of the user-defined attributes.
        Returns:
        An unmodifiable list continaing the names of the file's user-defined
        Throws:
        IOException - If an I/O error occurs
        SecurityException - In the case of the default provider, a security manager is installed, and it denies RuntimePermission("accessUserDefinedAttributes") or its checkRead method denies read access to the file.
      • read

        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 n, where n is the size of the attribute value. The first byte in the sequence is at index p and the last byte is at index p + n - 1, where p is the buffer's position. Upon return the buffer's position will be equal to p + n; its limit will not have changed.

        Usage Example: Suppose we want to read a file's MIME type that is stored as a user-defined attribute with the name "user.mimetype".

            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();
         
        Parameters:
        name - The attribute name
        dst - The destination buffer
        Returns:
        The number of bytes read, possibly zero
        Throws:
        IllegalArgumentException - If the destination buffer is read-only
        IOException - If an I/O error occurs or there is insufficient space in the destination buffer for the attribute value
        SecurityException - In the case of the default provider, a security manager is installed, and it denies RuntimePermission("accessUserDefinedAttributes") or its checkRead method denies read access to the file.
        See Also:
        size(java.lang.String)
      • write

        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 r, where r is the number of bytes remaining in the buffer, that is src.remaining(). The sequence of bytes is transferred from the buffer starting at index p, where p is the buffer's position. Upon return, the buffer's position will be equal to p + n, where n is the number of bytes transferred; its limit will not have changed.

        If an attribute of the given name already exists then its value is replaced. If the attribute does not exist then it is created. If it implementation specific if a test to check for the existence of the attribute and the creation of attribute are atomic with repect 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 IOException is thrown.

        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"));
         
        Parameters:
        name - The attribute name
        src - The buffer containing the attribute value
        Returns:
        The number of bytes written, possibly zero
        Throws:
        IOException - If an I/O error occurs
        SecurityException - In the case of the default provider, a security manager is installed, and it denies RuntimePermission("accessUserDefinedAttributes") or its checkWrite method denies write access to the file.
      • delete

        void delete(String name)
                    throws IOException
        Deletes a user-defined attribute.
        Parameters:
        name - The attribute name
        Throws:
        IOException - If an I/O error occurs or the attribute does not exist
        SecurityException - In the case of the default provider, a security manager is installed, and it denies RuntimePermission("accessUserDefinedAttributes") or its checkWrite method denies write access to the file.

Nederlandse vertaling

U hebt gevraagd om deze site in het Nederlands te bezoeken. Voor nu wordt alleen de interface vertaald, maar nog niet alle inhoud.

Als je me wilt helpen met vertalingen, is je bijdrage welkom. Het enige dat u hoeft te doen, is u op de site registreren en mij een bericht sturen waarin u wordt gevraagd om u toe te voegen aan de groep vertalers, zodat u de gewenste pagina's kunt vertalen. Een link onderaan elke vertaalde pagina geeft aan dat u de vertaler bent en heeft een link naar uw profiel.

Bij voorbaat dank.

Document heeft de 11/06/2005 gemaakt, de laatste keer de 04/03/2020 gewijzigd
Bron van het afgedrukte document:https://www.gaudry.be/nl/java-api-rf-java/nio/file/attribute/UserDefinedFileAttributeView.html

De infobrol is een persoonlijke site waarvan de inhoud uitsluitend mijn verantwoordelijkheid is. De tekst is beschikbaar onder CreativeCommons-licentie (BY-NC-SA). Meer info op de gebruiksvoorwaarden en de auteur.

Referenties

  1. Bekijk - html-document Taal van het document:fr Manuel PHP : https://docs.oracle.com

Deze verwijzingen en links verwijzen naar documenten die geraadpleegd zijn tijdens het schrijven van deze pagina, of die aanvullende informatie kunnen geven, maar de auteurs van deze bronnen kunnen niet verantwoordelijk worden gehouden voor de inhoud van deze pagina.
De auteur Deze site is als enige verantwoordelijk voor de manier waarop de verschillende concepten, en de vrijheden die met de referentiewerken worden genomen, hier worden gepresenteerd. Vergeet niet dat u meerdere broninformatie moet doorgeven om het risico op fouten te verkleinen.

Inhoudsopgave Haut