Paul Woitaschek
08/28/2022, 3:13 PMephemient
08/28/2022, 7:44 PMprivate suspend fun SequenceScope<DocumentFile>.walk(root: DocumentFile) {
yield(root)
if (root.isDirectory) {
for (child in root.listFiles()) {
walk(child)
}
}
}
fun DocumentFile.walk() = sequence {
walk(this@walk)
}
Paul Woitaschek
08/28/2022, 7:46 PMephemient
08/28/2022, 7:47 PMephemient
08/28/2022, 7:49 PMPaul Woitaschek
08/28/2022, 7:58 PMfun DocumentFile.walk(): Sequence<DocumentFile> {
return sequence {
suspend fun SequenceScope<DocumentFile>.walk(file: DocumentFile) {
yield(file)
if (file.isDirectory) {
file.listFiles().forEach {
walk(it)
}
}
}
walk(this@walk)
}
}