如何创建文件夹(Android R - Api 30)?

Fed*_*dov 8 android android-file android-storage android-11

了解到 Android 11 有范围存储,但我找不到任何信息,如何在 中创建和使用文件夹/storage/emulated/0/?旧方法仅适用于 api 29 及以下版本:(

dim*_*olk 11

从 Android Q 开始,我们可以在应用程序特定存储中创建文件夹。它的路径:

Android->数据->包名->文件->你的文件夹

用这个:

File file;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
    file = new File (this.getExternalFilesDir(null) + path);
} else {
    file = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + path);
}

if (!file.exists()) {
    file.mkdirs();
}
Run Code Online (Sandbox Code Playgroud)


bla*_*pps 5

在 Android 11 上,Android 10 中有关访问外部存储的限制要少得多。

Environment.getExternalStorageDirectory()
Run Code Online (Sandbox Code Playgroud)

再次可读并且

Environment.getExternalStoragePublicDirectory(...)
Run Code Online (Sandbox Code Playgroud)

Environment.DIRECTORY_DOCUMENTS对于诸如此类的文件夹是可写的。

Android 操作系统非常挑剔,为大多数目录中的文件使用正确的扩展名。