add custom attribute or metadata to file java

13,213

If your file system supports user-defined (aka extended) attributes, then the way to set one would be like this:

Files.setAttribute(path, "user:encryption used", "testtesttest");

As the javadoc for setAttribute explains, the 2nd argument takes the form of an optional view-name and an attribute name. In this case, you need to use the UserDefinedFileAttributeView whose view-name is "user".

Note that different file system types support different attribute views, and your file system may not support this one.

Share:
13,213
user1008531
Author by

user1008531

Updated on June 23, 2022

Comments

  • user1008531
    user1008531 almost 2 years

    I have files that need an extra attribute called "encryption used". But this gives "IllegalArgumentExeption". I know why it gives that error, "encryption used" isn't known as an attribute, but is there a way I can force it to be? Or add custom metadata to the file?

     Path path = new File("/propertyfiles/encdec.properties").toPath();
    
        try{
            Files.setAttribute(path, "encryption used", "testtesttest");
        }catch(IOException e){
            System.out.println(e.getMessage());
        }
        try{
            System.out.println(Files.getAttribute(path, "encryption used"));
        }catch(IOException e){
            System.out.println(e.getMessage());
        }