寫一個(gè) Kotlin 函數(shù)列出指定目錄中的所有子目錄
import java.io.File
fun listAllDirInDir(dir: String): List<File> {
? ?// 創(chuàng)建一個(gè) File 對(duì)象,表示傳入的目錄路徑
? ?val directory = File(dir)
? ?
? ?// 判斷該目錄是否存在,如果不存在則返回空列表
? ?if (!directory.exists()) {
? ? ? ?return emptyList()
? ?}
? ?
? ?// 調(diào)用 listFiles() 方法列出目錄下的所有文件和子目錄,返回一個(gè)數(shù)組
? ?// 使用 filter() 方法過(guò)濾出其中的子目錄,并將它們轉(zhuǎn)換為 List
? ?return directory.listFiles { file -> file.isDirectory() }?.toList() ?: emptyList()
}
該函數(shù)的邏輯很簡(jiǎn)單,主要分為以下幾個(gè)步驟:
創(chuàng)建一個(gè)
File
對(duì)象,表示傳入的目錄路徑。判斷該目錄是否存在,如果不存在則返回空列表。
調(diào)用
listFiles()
方法列出目錄下的所有文件和子目錄,返回一個(gè)數(shù)組。使用
filter()
方法過(guò)濾出其中的子目錄,并將它們轉(zhuǎn)換為List
。返回子目錄的列表。
注意,該函數(shù)會(huì)忽略傳入目錄中的隱藏文件和隱藏目錄。如果需要包括隱藏文件和目錄,可以將 listFiles()
方法的參數(shù)改為 dir.listFiles()
,或者在 filter()
方法中添加條件判斷。
標(biāo)簽: