Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

add custom attribute or metadata to file java

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());
    }
like image 914
user1008531 Avatar asked Sep 23 '13 09:09

user1008531


People also ask

How do I add metadata to a file in Java?

Steps for adding Metadata to ZIP in JavaLoad the ZIP file to be updated. Specify a predicate that will be used to add metadata properties. Specify a value which you want to be assigned to the selected properties. Pass the predicate to the AddProperties method.

What is metadata file in Java?

A file system's metadata is typically referred to as its file attributes. The Files class includes methods that can be used to obtain a single attribute of a file, or to set an attribute. Methods. Comment. size(Path)

What are file attributes in Java?

A file attribute view that supports reading or updating a file's Access Control Lists (ACL) or file owner attributes. AttributeView. An object that provides a read-only or updatable view of non-opaque values associated with an object in a filesystem. BasicFileAttributes.


1 Answers

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.

like image 68
Stephen C Avatar answered Sep 21 '22 00:09

Stephen C