Android:外部存储上的 mkdirs()/mkdir() 返回 false

标签 android android-file android-external-storage

我被这个逼疯了:

Log.d("STATE", Environment.getExternalStorageState());
File f = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM), "work_data");
Log.d("PATH", f.getAbsolutePath());
if (!f.exists()) {
    Log.d("MAKE DIR", f.mkdirs() + "");
}

输出日志如下所示:

STATE     mounted
PATH      /mnt/sdcard/DCIM/work_data
MAKE DIR  false

我确保添加了正确的权限:

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

但我不知道为什么它无法创建文件夹。我也用过mkdir()一步一步,但结果是一样的。请帮我。我在谷歌上搜索了很多,并且在这个愚蠢的事情上花了至少 2 天。谢谢你的帮助!!

编辑:

对不起大家!我添加了 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><application>标签。这是我的错误!不过谢谢大家的回复。

最佳答案

我遇到了同样的问题,我确定我把权限标签放在了正确的位置,但是mkdirs还没有工作,我的系统是Android 6.0,我现在解决了,你可以检查如下:

  1. 确保您将权限标记放入 .
  2. 在你的手机中打开“设置/应用”,检查你的应用的权限(我发现我的manifest语句中的权限不在这里),这样打开权限的开关。(我发现它默认是关闭的,这使得“mkdirs”失败)

enter image description here

关于Android:外部存储上的 mkdirs()/mkdir() 返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7212559/

相关文章:

android - 不使用 AssetManager 从资源加载文件

java - 使用 Android FileProvider 删除文件时出现 NullPointerException

android - 在外部存储中创建新文件的权限被拒绝

android - 无法在外部存储中创建新文件路径

Android Studio - 从 GitHub checkout *分支*

android - Google Android Analytics未在网络门户中显示数据

android - 如何写入和读取具有自定义扩展名的文本文件?

android-gallery - 用于访问图库的 Android 6 运行时权限

android - 光标位置来到编辑文本的开始

android - Firebase - 强制使用唯一的用户名