java - 为什么在内部存储而不是外部存储中创建新文件夹?
问题描述
我尝试在外部存储 SD 卡中创建一个新文件夹。使用此代码:
val folderMain = "NewFolder"
val f = File(Environment.getExternalStorageDirectory(), folderMain)
if (!f.exists()) {
f.mkdirs()
}
和这个权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
但执行此代码后,它会在内部存储中创建一个新文件夹。这是内部存储的屏幕截图:
虽然外部存储中没有新文件夹。这是外部存储的屏幕截图:
我应该怎么办?我想通过使用 Kotlin 或 java 代码在外部存储中创建一个新文件夹。
解决方案
来自https://developer.android.com/reference/android/os/Environment.html#getExternalStorageDirectory()
注意:不要被这里的“外部”这个词弄糊涂了。最好将此目录视为媒体/共享存储。它是一个文件系统,可以保存相对大量的数据,并且在所有应用程序之间共享(不强制执行权限)。传统上这是一张 SD 卡,但它也可以作为设备中的内置存储实现,与受保护的内部存储不同,并且可以作为文件系统安装在计算机上。
推荐阅读
- cloudify - 如何使用内部使用另一个插件的蓝图测试新的 cloudify 插件?
- sql - 自动生成的 Id 作为主键 + 唯一约束与多列主键。更轻松的数据关系
- vue.js - Vue路由器:锚链接到页面中的特定位置,例如/route/#anchor
- java - Spring自动装配注解构造函数参数
- javascript - 如何在一分钟完成后显示警报并在几分钟内停止脚本:使用javascript的秒计时器脚本
- java - 使用 iCal4j 库 (Java - Spring) 发送日历事件(邀请)
- java - 将日期转换为正确的时区
- c# - 使用字典
将该值用作列表的类型 - postgresql - Postgres GIN 索引不通过 Liquibase 脚本创建
- android - 如何从可穿戴设备连接到我的手机?