如何从字符串变量设置文件的所有者

时间:2016-09-21 16:58:31

标签: java file service lookup userprincipal

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;

0 个答案:

没有答案