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

2024-05-29

我对此感到疯狂:

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()一步一步来,但结果是一样的。请帮我。我在谷歌上搜索了很多,并且在这个愚蠢的事情上花费了至少两天的时间。感谢您的帮助!!

EDITING:

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


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

  1. 确保您将权限标签放入 .
  2. 打开手机中的“设置/应用程序”,检查您的应用程序的权限(我发现我的清单声明中的权限不在这里),像这样打开权限开关。(我发现它默认是关闭的,这使得“mkdirs”失败的)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐