【发布时间】:2017-09-22 12:26:30
【问题描述】:
我正在尝试在我的手机存储中(不在 sdcard 上)使用我的 android 应用程序生成一个文件夹,但我的 mkdirs() 无法正常工作。
我在清单中设置了android.permission.WRITE_EXTERNAL_STORAGE 并使用了这个基本代码:
File mediaStorageDir = new File(Environment.getExternalStorageDirectory(), "/MyDirName");
if (!mediaStorageDir.exists()) {
if (!mediaStorageDir.mkdirs()) {
Log.d("App", "failed to create directory");
}
}
但它不起作用...mkdirs 始终为 false 并且未创建文件夹。
我已经尝试了所有方法并查看了有关它的所有主题,但没有任何效果,我不知道为什么。
【问题讨论】:
-
您需要 Android API 23+ 的运行时权限
-
从android 6.0开始,你需要请求权限。在创建新文件之前添加这些行
ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.READ_EXTERNAL_STORAGE},1);在https://developer.android.com/training/permissions/requesting.html 上查看更多信息 -
"文件夹未创建" -- 你如何测试这个?
-
非常感谢您的回答!我想我的应用程序现在可以工作,但是......我没有看到我的文件夹。当我显示我的
mediaStorageDir变量时,这就是我所拥有的:/storage/emulated/0/MyDirName。我没有找到这个文件夹,为什么? -
现在我的 android 文件资源管理器中有该文件夹。它似乎与应用程序没有交互! Aftet 尝试我的应用程序后,我已经杀死了文件资源管理器以刷新它,但我的文件夹不存在。它现在就好像变魔术一样出现了!你有解释吗?