美文网首页
Android new File(path).mkdirs()

Android new File(path).mkdirs()

作者: 苏未_ | 来源:发表于2020-07-07 16:09 被阅读0次

    Manifest已经配置权限,代码中也动态获取权限,mkdirs一直返回false,最后找到原因是path的路径使用的是Environment.getExternalStorageDirectory().getPath(),在compileSdkVersion: 29版本中,该方法标注了@Deprecated,里面已经说明,对于Android Q的手机,应用程序不再可以直接访问此方法返回的路径,所以会一直报错 open failed: ENOENT (No such file or directory)

    image.png

    替换path的路径方案,不使用Environment.getExternalStorageDirectory().getPath()即可

     private static String getFileRoot(Context context) {
            if (Environment.getExternalStorageState().equals(
                    Environment.MEDIA_MOUNTED)) {
                File external = context.getExternalFilesDir(null);
                if (external != null) {
                    return external.getAbsolutePath();
                }
            }
            return context.getFilesDir().getAbsolutePath();
        }
    

    相关文章

      网友评论

          本文标题:Android new File(path).mkdirs()

          本文链接:https://www.haomeiwen.com/subject/attzqktx.html