原文: 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()

Kotlin 快速遍历File及子目录筛选指定类型文件的更多相关文章

  1. delphi遍历指定目录下指定类型文件的函数

    遍历指定目录下指定类型文件的函数// ================================================================// 遍历某个文件夹下某种文件,/ ...

  2. 在文件夹中 的指定类型文件中 查找字符串(CodeBlocks+GCC编译,控制台程序,仅能在Windows上运行)

    说明: 程序使用 io.h 中的 _findfirst 和 _findnext 函数遍历文件夹,故而程序只能在 Windows 下使用. 程序遍历当前文件夹,对其中的文件夹执行递归遍历.同时检查遍历到 ...

  3. C#项目打开/保存文件夹/指定类型文件,获取路径

    C#项目打开/保存文件夹/指定类型文件,获取路径 转:http://q1q2q363.xiaoxiang.blog.163.com/blog/static/1106963682011722424325 ...

  4. linux下删除目录及其子目录下某种类型文件

    Linux下,如果想要删除目录及其子目录下某种类型文件,比如说所有的txt文件,则可以使用下面的命令: find . -name "*.txt" -type f -print -e ...

  5. find查找指定类型文件并删除

            问题描述:                      查找当前目录下指定类型的文件              问题解决:                     (1)find命令   ...

  6. Linux下find一次查找多个指定类型文件,指定文件或者排除某类文件,在 GREP 中匹配多个关键 批量修改文件名等

    http://blog.sina.com.cn/s/blog_62e7fe670101dg9d.html linux下二进制文件查找: strings 0000.ts | grep -o " ...

  7. 遍历指定目录下指定类型文件的函数(fatkun Fix版)

    // ================================================================ // 遍历某个文件夹及子文件夹下某种文件, // 使用说明 // ...

  8. 用grep在子目录中指定的文件类型中查找(转载)

    转自:http://www.ai7.org/wp/html/653.html grep -r abcd *.py 这样的命令得不到你期待的结果,而 grep -r abcd * 这样得到的结果又太多, ...

  9. 如何快速在命令提示符(cmd)中打开指定的文件夹路径!

    按住shift键然后 右击,如图:

  10. linux下删除3分钟之前指定文件夹下的指定类型文件

    如果想要修改crontab,一般做以下的几步就可以了 将crontab 推到一个自定义的文件上 crontab -l>;tmp 编辑这个文件,做需要的修改 vi tmp 推回crontab cr ...

随机推荐

  1. 教你用JavaScript随机生成密码

    案例介绍 欢迎来到我的小院,我是霍大侠,恭喜你今天又要进步一点点了!我们来用JavaScript编程实战案例,做一个随机密码生成器.用户点击生成,输入框内就会生成一个由数字.大小写字母.特殊符号随机组 ...

  2. Java并发(十四)----悲观互斥与乐观重试

    1. 悲观互斥 互斥实际是悲观锁的思想 例如,有下面取款的需求 interface Account {    // 获取余额    Integer getBalance(); ​    // 取款   ...

  3. Linux-expect(以交互形式输入命令,实现交互通信)

    1.expect简介 expect是一种脚本语言,它能够代替人工实现与终端的交互,主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信. 安装命令: yum install ex ...

  4. OGG_Linux_x64_BigData启动ggsci时报错:error while loading shared libraries: libjvm.so: cannot open shared object file: No such file or directory

    问题描述 [root@hadoop03 ggs]$ ./ggsci ./ggsci: error while loading shared libraries: libjvm.so: cannot o ...

  5. NC51100 A Simple Problem with Integers

    题目链接 题目 题目描述 You have N integers, \(A_1, A_2, ... , A_N\) .You need to deal with two kinds of operat ...

  6. NVME(学习杂谈)—Asynchronous Event

    Asynchronous Event Request Host Software Recommendations 当一个异步事件请求完成(提供Event Type,Event Information, ...

  7. 如何查看Linux 内核是AMD、arm

    如何查看Ubuntu的内核是AMD.ARM.x86.x86_64 $ arch 注:x86_64,x64,AMD64基本上是同一个东西

  8. MyBatis Interceptor

    MyBatis的拦截器可以用于在以下对象及方法中拦截修改: Executor (update, query, flushStatements, commit, rollback, getTransac ...

  9. OCP试题解析之052-- DROP PROFILE app_user

    133.You created a profile APP_USER and assigned it to the users. After a month, you decide to drop t ...

  10. goroutine并发

    每一个并非的执行单元叫作一个goroutine.设想这里的一个程序有两个函数,一个函数做计算,另一个输出结果,假设两个函数没有相互之间的调用关系.一个线性的程序会先调用其中的一个函数,然后再调用另一个 ...