2013-05-05 45 views
0

当我执行这个片段:如何导入UnixFileAttributes?

FileSystem fs = FileSystems.getDefault(); 
for (String s : fs.supportedFileAttributeViews()) 
{ 
System.out.println(s); 
} 

我得到这样的结果:“基本的所有者用户UNIX DOS POSIX”

然后,当我尝试实际使用UnixFileAttributeView()似乎不存在。 我通过导入java.nio.file.attribute.*;导入整个包,但也试图直接导入java.nio.file.attributes.UnixFileAttributeView;,它似乎不存在。

虽然我能够导入所有其他attributeViews我得到了fs.supportedFileAttributeViews()

你知道它为什么会发生吗?而且,我怎样才能解决它?

在此先感谢。

回答

1

从文档

PosixFileAttributeView - 扩展与支持在支持POSIX家族 标准,如UNIX文件系统 属性的基本属性视图。这些属性包括文件所有者,组 所有者以及九个相关的访问权限。

+0

这个是什么? src/solaris/classes/sun/nio/fs/UnixFileAttributeView.java?那是什么类型的图书馆?为什么他们必须创建一个特定的类,如果已经PosixFileAttributeView? – Rollerball 2013-05-05 08:49:24

+0

这是openjdk的一部分,因此可能不会出现在其他JDK版本中。不知道他们为什么提出这个想法,可能只是另一个采取不同路线的多重实施的例子 – mprabhat 2013-05-05 08:51:58

1

它似乎不可能导入它。

通过Google搜索,您可以找到OpenJDK实现的一些源代码。

我发现访问数据是最简单的方法:

Files.getAttribute(file.toPath, "unix:uid") 

您至少有下列选项:

dev 
ino 
mode 
uid 
gid 
size 
atime 
mtime 
ctime 

当然,你应该检查Files.getFileStore(file.toPath).supportsFileAttributeView("unix")第一。