You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android内部存储创建目录后,如何正确列出这些目录?

问题原因

你用getDir()创建的目录(app_One、app_Two、app_Three)和getFilesDir()指向的files目录是同级目录,而非包含关系:

  • getDir()创建的目录路径:/data/user/0/me.soft.myapp/app_XXX
  • getFilesDir()返回的路径:/data/user/0/me.soft.myapp/files

所以遍历files目录自然找不到这三个目录。

正确代码

要列出这三个目录,需要获取它们所在的父目录(即应用内部存储的根目录),然后遍历该目录下的文件/目录:

// 获取应用内部存储的根目录
val rootDir = applicationContext.filesDir.parentFile ?: return

// 遍历根目录下的所有文件/目录
rootDir.listFiles()?.let { files ->
    println("Files count: ${files.size}")
    for (f in files) {
        println("Name: ${f.name}")
    }
} ?: run {
    println("Failed to list files or directory is empty")
}

如果只想过滤出getDir()创建的以app_开头的目录,可以添加过滤条件:

val rootDir = applicationContext.filesDir.parentFile ?: return

rootDir.listFiles { file ->
    file.isDirectory && file.name.startsWith("app_")
}?.let { appDirs ->
    println("App directories count: ${appDirs.size}")
    for (dir in appDirs) {
        println("Directory name: ${dir.name}")
    }
} ?: run {
    println("No app directories found or failed to list")
}

内容的提问来源于stack exchange,提问作者Michel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 21:39:21