在做文件相關的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()