0

当我执行此代码段时:

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

我得到这个结果:“基本所有者用户unix dos posix”

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

而我可以导入我从fs.supportedFileAttributeViews().

你知道为什么会这样吗?而且我该如何解决它?

提前致谢。

4

3 回答 3

1

从文档

PosixFileAttributeView – 使用支持 POSIX 系列标准的文件系统(如 UNIX)上支持的属性扩展基本属性视图。这些属性包括文件所有者、组所有者和九个相关的访问权限。

于 2013-05-05T08:40:28.147 回答
1

好像不能导入。

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

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

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

你至少有这些选择:

dev
ino
mode
uid
gid
size
atime
mtime
ctime

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

于 2014-03-24T14:42:07.973 回答
0

它没有与 java 1.7 捆绑在一起,但是,您可以阅读它的属性,如前面的评论中所示。

另外需要注意的是,您可以参考 backport_project_of_JSR203 并且可以找到它的实现:

https://code.google.com/p/jsr203-backport/source/browse/trunk/src/jsr203/sun/nio/fs/UnixFileAttributeView.java

于 2014-03-30T10:15:51.853 回答