【发布时间】:2011-12-16 00:05:48
【问题描述】:
如何使用 API 更改 Windows 中目录的目录所有者可以处理 Java ?
【问题讨论】:
如何使用 API 更改 Windows 中目录的目录所有者可以处理 Java ?
【问题讨论】:
对于文件本身,这很容易,但对于目录,你不能(据我所知)通过 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 部分。
【讨论】:
可能最容易使用 cacls.exe。这里还有一个有趣的讨论,也适用于编写 acls/owners:
Reading Windows ACLs from Java
编辑:实际上,cacls 不会处理所有权。这个更好:https://serverfault.com/questions/27332/how-to-take-ownership-of-files-from-the-command-line
【讨论】: