コードは次のとおりです。
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.Files;
import java.nio.file.attribute.UserPrincipalLookupService;
import java.nio.file.attribute.UserPrincipal;
import java.nio.file.FileSystems;
import java.lang.UnsupportedOperationException;
import java.io.IOException;
public class SetOwnerOfFile{
public static void main(String args[]){
Path path=Paths.get("c:\\demotext.txt");
try{
UserPrincipal owner=Files.getOwner(path);
System.out.format("The owner of file is: %s%n",owner.getName());
UserPrincipalLookupService lookupservice=FileSystems.getDefault().getUserPrincipalLookupService();
Files.setOwner(path,lookupservice.lookupPrincipalByName("joe"));
UserPrincipal newowner=Files.getOwner(path);
System.out.format("Now the owner of file is: %s%n",newowner.getName());
}
catch(UnsupportedOperationException x){
System.err.println(x);
}
catch(IOException x){
System.err.println(x);
}
}
}
出力:
ファイルの所有者は次のとおりです。\Everyonejava.nio.file.attribute.UserPrincipalNotFoundException
プログラム
がIOExceptionをスローしています。OSがファイルの所有者の変更を制限しているということですか?そうでない場合は、私にいくつかの解決策を提案してください。