当前位置:嗨网首页>书籍在线阅读

10-文件遍历

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

13.2.3 文件遍历

和Groovy等编程语言一样,Kotlin对遍历文件功能进行了扩展,遍历文件树可以调用扩展方法walk,它会返回一个fileTreeWalk对象。下面是遍历指定文件夹下所有文件的示例。

fun traverseFileTree(filename: String) {
      val f = File(filename)
      val fileTreeWalk = f.walk()
      fileTreeWalk.iterator().forEach { println(it.absolutePath) }
}

当然,还可以遍历当前文件下面的所有子目录文件,并将返回结果存入一个 Iterator中。

fun getFileIterator(filename: String): Iterator<File> {
           val f = File(filename)
           val fileTreeWalk = f.walk()
           return fileTreeWalk.iterator()
    }

除此之外,Kotlin的文件遍历操作还支持条件过滤,并将返回结果存入一个Sequence中。

fun getFileSequenceBy(filename: String, p: (File) -> Boolean): Sequence<File> {
           val f = File(filename)
           return f.walk().filter(p)
    }

遍历文件树需要调用扩展方法walk,并最终返回一个fileTreeWalk对象,该函数还提供了用于设置遍历方向和深度的相关方法。