【发布时间】:2021-07-21 09:28:23
【问题描述】:
我是 android 开发的初学者。我正在做一个项目,我必须读取 sdcard 文件夹内名为 Audio 的文件夹中的所有音频文件。我一直在查看其他问题,发现很多人使用 getExternalStorageDirectory() 获取目录路径并使用 listFiles 遍历文件夹/目录中的所有文件。但我发现 getExternalStorageDirectory() 已弃用。我猜 getExternalFileDir() 是替代方案,但我无法理解如何使用它。我已经被这个问题困了几个小时了,任何帮助都将不胜感激。
在看到建议后,我对代码进行了这些更改,我还将文件夹更改为 Audiobook 并将我的文件放在那里
fun getaudio(){
val dir: File = File("/sdcard/Audiobooks/01 Furies of Calderon")
if (dir.exists()) {
var files = dir.listFiles()
Log.d("mytag","No of files is ${files.size}")
}
【问题讨论】:
-
您是否创建了音频文件夹,或者您尚未创建要从中读取的文件夹?
-
只需使用所需音频文件夹的完整路径。它只能有一个完整路径,因此讨论 getExternalFilesDir 作为替代是没有意义的。你必须想出正确的道路。
-
I have to read all the audio files present in a folder named Audio inside the sdcard folder.不清楚你对 sdcard 的意思。可移动的micro sd卡?你为什么不告诉我们完整的路径? -
完整路径是:/sdcard/Audio,是的,我已经创建了文件夹
-
那么知道完整路径有什么问题呢?只需使用 File.listFiles()。它与 /storage/emulated/0/Audio 的路径相同。所以你可以使用 getExternalStorageDirectory()。