FileOwnerAttributeView FOAttr = Files.getFileAttributeView(VidFile.toPath(),FileOwnerAttributeView.class);
System.out.println(FOAttr.getOwner());
UserPrincipalLookupService lookupService = FileSystems.getDefault().getUserPrincipalLookupService();
UserPrincipal FileOwner = lookupService.lookupPrincipalByName(UName);
System.out.println(FileOwner.getName());
FOAttr.setOwner(FileOwner);
我认为这是一个相对简单的问题;我正在尝试使用给定的代码更改文件的所有者。它实际上工作得很好,直到我尝试将字符串变量UName设置为UserPrincipal - 我已经包含了正确的导入库但是当我尝试执行代码时,我得到以下内容:
线程“main”中的异常 java.nio.file.attribute.UserPrincipalNotFoundException at sun.nio.fs.WindowsUserPrincipals.lookup(WindowsUserPrincipals.java:147) 在 sun.nio.fs.WindowsFileSystem $ LookupService $ 1.lookupPrincipalByName(WindowsFileSystem.java:270) 在 metadataretrieval.MetadataRetrieval.main(MetadataRetrieval.java:213) C:\ Users \用户rolsen \应用程序数据\本地\的NetBeans \缓存\ 8.1 \执行人-片段\ debug.xml:83: Java返回:1
现在我有点困惑...当用户的名字在字符串变量中时,有没有在运行时将UserPrincipal设置为特定用户的技巧?
import java.nio.file.Files;
import java.nio.file.FileSystems;
import java.nio.file.attribute.FileOwnerAttributeView;
import java.nio.file.attribute.UserPrincipalLookupService;
import java.nio.file.attribute.UserPrincipal;