Android 11引入了Scoped Storage机制,它会限制应用对外部存储的访问权限。因此,使用Environment.getExternalStorageDirectory()获取的目录路径可能不再是可访问的。为了解决这个问题,可以使用Context.getExternalFilesDir()方法获取应用的沙盒目录,并在其中创建文件夹。
下面是代码示例:
String folderName = "myFolder";
File folder = new File(getExternalFilesDir(null), folderName);
if (!folder.exists()) {
// 创建文件夹及其所有父目录
boolean success = folder.mkdirs();
if (!success) {
Log.e(TAG, "创建文件夹失败");
}
}
在上面的示例中,我们首先定义了要创建的文件夹的名称'myFolder”,然后使用getExternalFilesDir()方法获取应用的沙盒目录,接着使用mkdirs()方法创建文件夹。注意,mkdirs()方法会自动创建所有不存在的父目录,因此不需要事先创建它们。
如果创建文件夹失败,可以根据需要处理相应的错误。
上一篇:Android11上是否可能避免PackageInstaller确认?
下一篇:Android11上授予MANAGED_EXTERNAL_STORAGE权限后出现'EACCESpermissiondenied”错误