Kotlin 快速遍历File及子目录筛选指定类型文件

发布时间 2023-12-30 00:26:44作者: Stars-one

原文: Kotlin 快速遍历File及子目录筛选指定类型文件 - Stars-One的杂货小窝

在做文件相关的app,经常会遇到筛选某个文件夹下的符合条件的文件对象,且要包含子文件夹,之前一直是自己写个递归循环

没想到问了GPT,得到了一个新的写法,特此记录下

Kotlin中,File对象有个walk()方法,可以直接返回一个文件树序列,可以将此看做成一个List来操作,之后只需要加上我们需要的筛选条件即可

如下代码:

val dirFile = File("xx")
//筛选某个文件夹及子目录下是mp3的文件
val mp3Files = dirFile.walk()
    .filter { it.isFile } //先筛选一遍文件
    .filter {  it.extension.equals("mp3", true) } //再筛选扩展名
    .toList()