目录未创建 - 打开失败:ENOENT(没有此类文件或目录)

时间:2017-10-28 07:39:28

标签: android

下面的'状态'标志始终返回false。如果我删除它然后我在我试图创建下面的photoFile的行上收到“ENOENT(没有这样的文件或目录)”的错误。

boolean status=false;
File picturesPath = Environment .getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
File myPicturesFolder = new File (picturesPath.getAbsolutePath() +"/myBuddy");
if(!myPicturesFolder.exists()) {
                status = myPicturesFolder.mkdirs();
               } 


    if(status) {
        File photoFile = null;
        String type = DateAndTimeUtils.getTypeBasedOnTimeOfTheDay();
        String timeStamp = DateAndTimeUtils.dateTimeStamp();
        String photoFileName = type + timeStamp;
        photoFile = File.createTempFile(photoFileName, ".jpg", myPicturesFolder);
     }

我在Android清单中的权限也设置为

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

我知道问题是什么以及我的代码中发生了什么,但似乎无法理解如何修复它。出于一些奇怪的原因。 有人可以重新审视并请帮帮我吗?

1 个答案:

答案 0 :(得分:0)

我根据上面的评论找到了这个问题的根本原因。这确实是权限相关的。因为对于Android6,我必须在运行时检查权限状态,由于没有权限,mkdirs()无法正常工作。所以我添加了permissionCheck和onRequestPermissionsResult,之后它开始运行良好。