2017-10-28 62 views
0

我下面的'status'标志总是返回false。如果我删除它,那么我正在尝试在下面创建photoFile的行上收到“ENOENT(没有这样的文件或目录)”错误。目录没有被创建 - 打开失败: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" /> 

我知道是什么问题,它是在我的代码发生的事情,但似乎无法理解如何解决它。出于一些奇怪的原因。 有人可以重新看看,请帮助我吗?

+0

你使用的是什么android设备版本? –

+0

@SRBbans - 我的测试手机是Android 6.0.1,minSDKVersion在androidmanifest中设置为23 –

+0

什么是你的项目中的目标版本?上面的android 6你必须要求在运行时的权限? –

回答

0

根据上述评论,我找到了导致此问题的根本原因。这确实与权限有关。由于对于Android6,我必须在运行时检查权限状态,mkdirs()由于没有权限而不工作。所以我添加了permissionCheck和onRequestPermissionsResult,之后它开始运行良好。

相关问题