我被这个逼疯了:
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,我现在解决了,你可以检查如下:
- 确保您将权限标记放入 .
- 在你的手机中打开“设置/应用”,检查你的应用的权限(我发现我的manifest语句中的权限不在这里),这样打开权限的开关。(我发现它默认是关闭的,这使得“mkdirs”失败)
关于Android:外部存储上的 mkdirs()/mkdir() 返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7212559/