Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java NIO for Unix操作系统中设置用户定义的文件属性?_Java_File_Jakarta Ee_Nio_Java.nio.file - Fatal编程技术网

如何在Java NIO for Unix操作系统中设置用户定义的文件属性?

如何在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

我试图将用户定义的属性设置为文件,例如,将文件foo.txt设置为
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代码之外,可能没有办法解决这个问题。