如何建立资料夹Android R-Api 30?

问题描述

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

解决方法

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

Android->data->包名->files->你的文件夹

使用这个:

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

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

import cats.data.Writer
import cats.instances.vector._
import cats.instances.list._
import cats.instances.tuple._
import cats.Foldable
import cats.syntax.traverse._

val result1 = for {
  i <- Writer(Vector("hello"),Vector(1))
  j <- Writer(Vector("bye"),Vector(2))
} yield j

val result2 = for {
  x <- Writer(Vector("hi"),Vector(33))
  y <- Writer(Vector("ciao"),Vector(55))
} yield y

val l = Vector(result1,result2)

val result3 = l.flatSequence

println(result3.run) // (Vector(hello,bye,hi,ciao),Vector(2,55))

可以再次读取,并且

Environment.getExternalStorageDirectory()

对于Environment.getExternalStoragePublicDirectory(...) 等文件夹是可写的。

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

,

第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"