如何在Java NIO for Unix操作系统中设置用户定义的文件属性?
我试图将用户定义的属性设置为文件,例如,将文件foo.txt设置为如何在Java NIO for Unix操作系统中设置用户定义的文件属性?,java,file,jakarta-ee,nio,java.nio.file,Java,File,Jakarta Ee,Nio,Java.nio.file,我试图将用户定义的属性设置为文件,例如,将文件foo.txt设置为version=1。这样我以后就可以检索version属性了 我看到JavaNIO包提供了这样的机制,我遵循了这个文档。然而,我试图在我的Unix操作系统中运行它,它说空指针异常,我还看到博客说它是特定于窗口的。那么,在Unix中如何将属性写入文件呢 UserDefinedFileAttributeView userDefinedFAView = Files .getFileAttributeVie
version=1
。这样我以后就可以检索version
属性了
我看到JavaNIO包提供了这样的机制,我遵循了这个文档。然而,我试图在我的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));
UserDefinedFileAttributeView userDefinedFAView=文件
.getFileAttributeView(路径,UserDefinedFileAttributeView.class);
List attributeList=userDefinedFAView.List();
System.out.println(“添加前用户定义的属性列表大小:”
+attributeList.size());
//设置用户定义属性
字符串attributeName=“version”;
字符串attributeValue=“1”;
userDefinedFAView.write(attributeName,
defaultCharset().encode(attributeValue));
整个源代码如下所示:
源代码的参考博客:
请提供Java 7或更高版本中设置文件属性的最佳方法
另外,我看到Java文档在下面提到了这一点:
注:
在Linux中,您可能必须为其启用扩展属性
用户定义的属性可以工作。如果您收到
尝试访问用户定义的数据库时出现UnsupportedOperationException
属性视图中,需要重新装载文件系统。以下
命令使用扩展属性为根分区重新装载根分区
ext3文件系统。如果此命令不适用于您的
Linux,请参阅文档
$sudo挂载-o重新挂载,用户/
如果要使更改永久化,请在/etc/fstab中添加一个条目。
那么,如何设置用户定义的属性而不做上述说明。它说“您……必须启用扩展属性”。除了编写您自己的JNI代码之外,可能没有办法解决这个问题。