什么文件系统支持Java UserDefinedFileAttributeView?

我需要将自定义数据与文件系统中的文件一起存储(每个文件大约50个字节)。 我没有任何其他存储来保存数据,也无法为此创建额外的文件。 这些是我的要求我无法改变它。

我发现这可以使用UserDefinedFileAttributeView类来完成。

哪些文件系统支持此function? NTFS,FAT,Linux上的任何其他文件系统?

数据实际存储的位置和可靠性如何?

我已通过UserDefinedFileAttributeView测试了以下文件系统支持的自定义属性:NTFS,Ext4,ZFS。 其他流行的文件系统也可能支持它们。 在以下文件系统FAT32,HFS +中未找到支持。

我发现依靠个人名单还不够。 始终有一种方法可以询问底层实现,支持哪些视图以及是否支持任何具体视图。 查看以下代码:

final FileSystem defaultFS = FileSystems.getDefault(); for (String fileAttributeView : defaultFS.supportedFileAttributeViews()) { System.out.println("Default file system supports: " + fileAttributeView); } 

输出:

 Default file system supports: acl Default file system supports: basic Default file system supports: owner Default file system supports: user Default file system supports: dos 

您可以在我的post中阅读更多关于NIO.2中文件属性的内容

我还没有找到所有支持的文件系统的任何综合列表。 看起来支持许多现代文件系统(ntfs,ext *)。 正确使用这些用户定义属性的唯一方法是在读取和写入数据之前调用supportsFileAttributeView

您也可以尝试将Preferences API存储在某些JVM管理的存储中的Preferences API ,因此从技术上讲,您不会创建任何文件。