我正在尝试将用户定义的属性设置为文件,例如version=1
文件 foo.txt。这样我version
以后可以检索该属性。
我看到 Java NIO 包提供了这样的机制,我遵循了这个文档。但是,我试图在我的 Unix 操作系统中运行它,它说空指针异常,我也看到博客说它 是特定于窗口的。那么如何在 Unix 中将属性写入文件?
UserDefinedFileAttributeView userDefinedFAView = Files
.getFileAttributeView(path, UserDefinedFileAttributeView.class);
List<String> attributeList = userDefinedFAView.list();
System.out.println("User Defined Attribute List Size Before Adding: "
+ attributeList.size());
// set user define attribute
String attributeName = "version";
String attributeValue = "1";
userDefinedFAView.write(attributeName,
Charset.defaultCharset().encode(attributeValue));
整个源代码如下: https ://gist.github.com/ajayramesh23/e21d6159d8271fe0a4cfaf7209f6fb74
源代码参考博客:http: //javapapers.com/java/file-attributes-using-java-nio/
请提供在 Java 7 或更高版本中设置文件属性的最佳方法。
另外,我看到 Java Doc 在下面的注释中提到了这一点:
笔记:
在 Linux 中,您可能必须启用扩展属性才能使用户定义的属性起作用。如果在尝试访问用户定义的属性视图时收到 UnsupportedOperationException,则需要重新挂载文件系统。以下命令使用 ext3 文件系统的扩展属性重新挂载根分区。如果此命令不适用于您的 Linux 风格,请查阅文档。
$ sudo mount -o remount,user_xattr / If you want to make the change permanent, add an entry to /etc/fstab.
那么如何在不执行上述说明的情况下设置用户定义的属性。