2017-10-28 108 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,之後它開始運行良好。

相關問題