Вы можете использовать flatMap
для этой цели.Сначала он отображает каждый элемент в Sequence
, используя вашу функцию отображения (таким образом, вы получаете Sequence<Sequence<File>>
), затем выравнивает каждый результат обратно в Sequence<File>
.
, поскольку walkTopDown
возвращает FileTreeWalk
(который является подклассом Sequence<File>
), и вы возвращаете List<File>
, вам также необходимо выполнить некоторые преобразования.Вы можете удалить эти преобразования, если вместо getFiles
и readFiles
вернет Sequence<File>
.
fun readFiles(directory: String): List<File> {
return File(directory)
.walkTopDown()
.flatMap { getFiles(it).asSequence() }
.toList()
}