写一个 Kotlin 函数列出指定目录中的所有子目录
import java.io.File
fun listAllDirInDir(dir: String): List<File> {
// 创建一个 File 对象,表示传入的目录路径
val directory = File(dir)
// 判断该目录是否存在,如果不存在则返回空列表
if (!directory.exists()) {
return emptyList()
}
// 调用 listFiles() 方法列出目录下的所有文件和子目录,返回一个数组
// 使用 filter() 方法过滤出其中的子目录,并将它们转换为 List
return directory.listFiles { file -> file.isDirectory() }?.toList() ?: emptyList()
}
该函数的逻辑很简单,主要分为以下几个步骤:
创建一个
File
对象,表示传入的目录路径。判断该目录是否存在,如果不存在则返回空列表。
调用
listFiles()
方法列出目录下的所有文件和子目录,返回一个数组。使用
filter()
方法过滤出其中的子目录,并将它们转换为List
。返回子目录的列表。
注意,该函数会忽略传入目录中的隐藏文件和隐藏目录。如果需要包括隐藏文件和目录,可以将 listFiles()
方法的参数改为 dir.listFiles()
,或者在 filter()
方法中添加条件判断。