如何使用Java NIO createDirectories方法设置目录所有者组?

时间:2018-12-04 09:34:17

标签: java java-8 nio

我正在使用Java createDirectories方法在测试目录中创建子目录,并设置文件权限。下面是代码;

String completeDestPath = "/home/base/test/test1/test2/test3/";
Path destinationPath = Paths.get(completeDestPath);

Set<PosixFilePermission> perms = PosixFilePermissions.fromString("rwxrwxrwx");
FileAttribute<Set<PosixFilePermission>> fa = PosixFilePermissions.asFileAttribute(perms);

Files.createDirectories(destinationPath, fa);

这很好。与此同时,我想将文件所有者组设置为新创建的目录。为此,我使用下面的代码;

UserPrincipalLookupService lookupService = FileSystems.getDefault().getUserPrincipalLookupService();
GroupPrincipal group = lookupService.lookupPrincipalByGroupName("testgroup_1");

Files.getFileAttributeView(destinationPath, PosixFileAttributeView.class, LinkOption.NOFOLLOW_LINKS).setGroup(group);

但是在这里,我需要循环调用代码,或者递归地获取每个新创建的目录,然后更改所有者组。是否有可能以更好的方式做到这一点,例如将参数作为参数传递给createDirectories方法?

0 个答案:

没有答案