解决方法

方法一: 增加外部权限

<!--外部存储的写权限-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!--外部存储的读权限-->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

出处: Android外部存储(/storage/emulated/0)无法创建文件夹

我已经加了外部权限, 编译器中也没有任何报错, 但是还是显示 “文件创建失败”

方法二:

可以在manifest文件中的标签下加上这个属性:

android:requestLegacyExternalStorage="true" 

这是因为Android10.0改变了文件的存储方式,加这个属性是启用旧的存储方式。 如果是正式项目的话建议使用存储访问框架(SAF)去做文件操作。

出处: Android10.0 外部存储(/storage/emulated/0)无法创建文件夹

但是这个方法我试了还是不行.

方法三:

目标设备的Android版本不对

在这里插入图片描述

方法四:

安卓10已经不允许应用直接在根目录上创建文件夹了,可以访问一些公用的例如相册等目录,但是不能创建文件夹,

String path = getContext().getExternalFilesDir(null).getAbsolutePath();
File dirFile = new File(path);
if (!dirFile.exists()) {
            boolean mkdirs = dirFile.mkdirs();
            if (!mkdirs) {
                Log.i(TAG, "创建:" + mkdirs);
            } else {
                Log.i(TAG, "创建成功");
            }
        }

谷歌建议使用此方法来替代,但是此方法只能在/storage/emulated/0/Android/data/包名/files 此目录下创建,至于有没有其它途径在根目录上创建文件夹,还在寻找中

更多推荐