在java中更改目录所有者

时间:2011-12-16 00:05:48

标签: java windows winapi

如何使用API​​更改Windows中目录的目录所有者可以处理Java?

2 个答案:

答案 0 :(得分:2)

对于文件本身来说,这很容易,但是对于目录,你不能(据我所知)通过Java来做,因为它依赖于文件系统(例如FAT,NTFS,HFS +,ext4等)。 )。遗憾。

以防你想要一个档案。

来自Files.setOwner(File, UserPrincipal)的Java文档:

  

用法示例:假设我们想让“joe”成为文件的所有者:

Path path = ...
UserPrincipalLookupService lookupService =
    provider(path).getUserPrincipalLookupService();
UserPrincipal joe = lookupService.lookupPrincipalByName("joe");
Files.setOwner(path, joe);

另请参阅Java教程的Managing Metadata部分。

答案 1 :(得分:0)

可能最容易使用cacls.exe。这里也有一个有趣的讨论,也适用于编写acls / owner:

Reading Windows ACLs from Java

编辑:实际上,cacls不会处理所有权。这样做更好:https://serverfault.com/questions/27332/how-to-take-ownership-of-files-from-the-command-line