Существует массив array_chunk, который делает именно это.
http://www.php.net/manual/en/function.array-chunk.php
[просто сделав заметную часть ответа Артефакто более явным]
Чтобы получить относительный путь между путями, вы можете использовать метод relativize()
.
Таким образом, вы должны быть в состоянии сделать это, как только вы нашли базовый путь, который - если вы его еще не знаете - можно было бы сделать, перебирая родителей (используя getParent()
), пока вы не найдете его ( отметив getFilename()
) или попав в корень. Тогда это должно быть так же просто, как parentPath.relativize(path)
.
Ответ Томаса потрясающий и делает то, что мне было нужно, но в конце концов я решил это:
public Path extractGroupPath(Path path, String groupName) {
int startIndex = path.toString().indexOf(groupName);
String groupPath = path.toString().substring(startIndex);
return Paths.get(groupPath);
}
Потому что это более просто и легко понять.