什么文件系统支持Java UserDefinedFileAttributeView?

时间:2013-03-10 06:28:38

标签: java filesystems metadata nio

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

我发现可以使用UserDefinedFileAttributeView类完成此操作。

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

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

3 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:4)

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

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

您可以在File attributes in NIO.2

的帖子中阅读更多内容

答案 2 :(得分:2)

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

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