7

我的文件需要一个名为“已使用加密”的额外属性。但这给出了“IllegalArgumentExeption”。我知道为什么它会给出该错误,“使用的加密”不被称为属性,但是有没有办法可以强制它成为?或者将自定义元数据添加到文件中?

 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());
    }
4

1 回答 1

9

如果您的文件系统支持用户定义(也称为扩展)属性,那么设置一个的方法如下:

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

正如javadoc forsetAttribute解释的那样,第二个参数采用可选视图名称和属性名称的形式。在这种情况下,您需要使用UserDefinedFileAttributeView其视图名称为“用户”的视图。

注意不同的文件系统类型支持不同的属性视图,你的文件系统可能不支持这个。

于 2013-09-23T09:25:28.497 回答