首页 > 解决方案 > 为什么在内部存储而不是外部存储中创建新文件夹?

问题描述

我尝试在外部存储 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 代码在外部存储中创建一个新文件夹。

标签: javaandroidkotlinandroid-external-storageandroid-storage

解决方案


来自https://developer.android.com/reference/android/os/Environment.html#getExternalStorageDirectory()

注意:不要被这里的“外部”这个词弄糊涂了。最好将此目录视为媒体/共享存储。它是一个文件系统,可以保存相对大量的数据,并且在所有应用程序之间共享(不强制执行权限)。传统上这是一张 SD 卡,但它也可以作为设备中的内置存储实现,与受保护的内部存储不同,并且可以作为文件系统安装在计算机上。


推荐阅读