0

我正在执行以下操作:

如何在 OSX 上的 Java 中获取文件所有者的名称?

这是我的代码:

private String getOwner(File f)
{
    Path p = Paths.get(f.getAbsolutePath());
    UserPrincipal owner = Files.getOwner(p);
    return owner.getName();
}

我收到“找不到符号”错误。这里是:

...$ javac Delete.java
Delete.java:38: error: cannot find symbol
    UserPrincipal owner = Files.getOwner(p);
    ^
  symbol:   class UserPrincipal
  location: class Delete
1 error

我知道错误的含义,并且尝试了几个导入语句:

java.security.*; ( http://docs.oracle.com/javase/7/docs/api/ )

java.nio.file.attribute; ( http://docs.oracle.com/javase/7/docs/api/ )

即使不得不问这个我也觉得很荒谬,但我不知道我做错了什么!

4

1 回答 1

1

我能够通过以下导入在我的 Mac 上编译和运行您的代码:

import java.nio.file.*;
import java.io.File;
import java.io.IOException;
import java.nio.file.attribute.UserPrincipal;

并采用以下格式:

private String getOwner(File f) throws IOException {
    Path p = Paths.get(f.getAbsolutePath());
    UserPrincipal owner = Files.getOwner(p);
    return owner.getName();
}

您应该检查您是否真的在编译代码的地方使用了 Java 7。

于 2012-09-23T07:01:59.750 回答