如何从 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:如何从一组图像制作视频

如何从服务器下载文件并将其保存在 Android SD 卡中的特定文件夹中?

Android:如何从一组图像制作视频

Android - 如何放置一个从 SD 卡或相机胶卷加载图像的图像视图?

如何使用 android studio 从应用程序中的内部或外部存储(SD 卡)读取文件?