如何从 Android API 24+ 在 SD 卡上写入文件
Posted
技术标签:
【中文标题】如何从 Android API 24+ 在 SD 卡上写入文件【英文标题】:How to write files on SD Card from Android API 24+ 【发布时间】:2020-08-05 08:35:34 【问题描述】:我有一个大问题。我想将使用我的应用程序从 Internet 下载的一些文件保存到我的 SD 卡中:
/storage/9016-4EF8/Android/data/com.my.application/files
但我不想在我的代码中硬编码这个字符串。那么我该如何以编程方式进行呢? 我已经请求允许在外部存储上写入。
目前在我的代码里面有下面这段代码:
File sdcard = new File(context.getExternalFilesDir(null).getAbsolutePath() + "/Video scaricati/");
但是有了它,我的应用程序将文件保存在里面:
/storage/emulated/0/Android/data/com.my.application/files/Video scaricati
它不在我的 SD 卡中。
我该怎么做?
【问题讨论】:
【参考方案1】:取第二个返回的项
File dirs[] =getExternalFilesDirs();
在使用前检查数组是否包含多于一个元素。不是每个人都会放入 micro SD 卡。
【讨论】:
【参考方案2】:尝试像这样更改为Environment.getExternalStorageDirectory()
new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/Video scaricati/");
【讨论】:
如果我按照你说的做,路径变成:/storage/emulated/0/Video scicati,我无法在其中创建文件夹,因为 sdcard.mkdris() 返回 false。但无论如何它仍然不在 SD 车内。以上是关于如何从 Android API 24+ 在 SD 卡上写入文件的主要内容,如果未能解决你的问题,请参考以下文章
如何使用为 Android 5.0 (Lollipop) 提供的新 SD 卡访问 API?
如何从服务器下载文件并将其保存在 Android SD 卡中的特定文件夹中?