2016-06-29 44 views
-1

Android清單權限File.mkdirs()不創建文件夾 - Android的棉花糖(API 23)

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

的Java文件(第一次嘗試)

String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/newAppFolder"; 
File dir = new File(path); 
dir.mkdirs(); 

的Java文件(第二次嘗試)

String state = Environment.getExternalStorageState(); 
if(Environment.MEDIA_MOUNTED.equals(state)) { 
    File dir = new File(Environment.getExternalStorageDirectory(), "newAppFolder"); 
    if(!dir.exists()) { 
     dir.mkdirs(); 
     Toast.makeText(getApplicationContext(), "Folder Created", Toast.LENGTH_LONG).show(); 
    } 
    else 
     Toast.makeText(getApplicationContext(), "Folder exists", Toast.LENGTH_LONG).show(); 
    } 

else 
    Toast.makeText(getApplicationContext(), "SD Card Not Found", Toast.LENGTH_LONG).show(); 

不幸的是,無論是否嘗試創建我需要的newAppFolder文件。有人可以告訴我我做錯了什麼嗎?

注意:在第二次嘗試中,應用程序敬酒不斷出現創建文件夾

+2

如果你的目標sdk是23,你應該檢查[這個鏈接](https://developer.android.com/training/permissions/requesting.html),看看在運行時請求權限是否修復它。 – Vucko

+0

@Vucko我不認爲這可能是「文件夾創建」顯示的問題。 –

+0

@ShadabAnsari你可以看到,如果該文件夾不存在,並且如果'mkdirs()'不會引發異常,那麼就會顯示這個文件夾?即使文件夾沒有實際創建,它也會顯示敬酒。 – Vucko

回答

0

中的Android 6.0開始(API級別23),用戶權限授予應用程序的應用程序運行時,而不是當他們安裝應用程序。

如果你的目標sdk是23,你應該檢查this link,看看在運行時請求許可是否修復它。