android – 为什么我不能在Environment.DIRECTORY_PICTURES中创建一个目录?

前端之家收集整理的这篇文章主要介绍了android – 为什么我不能在Environment.DIRECTORY_PICTURES中创建一个目录?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

这是我的代码

File selfieLocation = new File(getExternalFilesDir(Environment.DIRECTORY_PICTURES),"Daily Selfies");
boolean isDirectory = false;
if(!selfieLocation.isDirectory()) {
        //Creates directory named by this file
        selfieLocation.mkdir();
        isDirectory = selfieLocation.isDirectory();
 }
 //array of strings 
 for(String selfiePath: selfieLocation.list()) {
        selfies.add(selfiePath);
 }

基本上我要做的是在标准目录中创建我自己的可自定义目录,在该目录中放置可供用户使用的图片.

我看了相关的线程并看到了这个,Android: unable to create a directory in default pictures folder.但是我确保我调用了getExternal ….,而不仅仅是将Environment.DIRECTORY_PICTURES作为参数.
我也在这里看了http://developer.android.com/guide/topics/data/data-storage.html#filesExternal,看到我有正确的方法调用/格式在外部存储器中创建一个可自定义文件夹.文档的例子是

File file = new File(Environment.getExternalStoragePublicDirectory(
        Environment.DIRECTORY_PICTURES),albumName);
if (!file.mkdirs()) {
    Log.e(LOG_TAG,"Directory not created");
}

我逐步完成了我的代码,看到即使在调用了selfieLocation.mkdir()之后,局部变量isDirectory也保持为false.有谁知道为什么这个目录无法创建?

最佳答案
尝试使用File#mkdirs()创建目录,而不是File#mkdir().后者假定所有父目录都已就位,因此如果其父项不存在,则不会创建目录.
另外,请查看AndroidManifest.xml中的权限.您需要以下权限才能读取/写入外部存储上的内容

android.permission.READ_EXTERNAL_STORAGE现在不是必需的,但在Android的未来版本中是it will be.

猜你在找的Android相关文章