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

How to create folder (Android R - Api 30)?

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

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

Environment.getExternalStorageDirectory()

再次可读并且

Environment.getExternalStoragePublicDirectory(...)

对于 Environment.DIRECTORY_DOCUMENTS 等文件夹是可写的。

Android OS 对大多数目录中的文件使用正确的扩展名非常挑剔。

第 1 步:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

第 2 步:

Environment.getExternalStorageDirectory().absolutePath + "/your_folder_name"

因为 Android Q 我们可以在应用特定存储中创建文件夹。它的路径:

Android->data->package name->files->your folder

使用这个:

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();
}