我正在使用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方法?