2016-06-29 12 views
-1

Android Manifest BerechtigungenFile.mkdirs() erstellt nicht die Ordner - Android-Eibisch (API 23)

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

Java-Datei (Erster Versuch)

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

Java-Datei (Zweite versuchen)

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(); 

Leider erstellt keiner Versuch die newAppFolder-Datei, die ich brauche. Kann mir bitte jemand sagen, was ich falsch mache? Ordner erstellt zeigt

+2

Wenn Ihre Ziel-SDK 23 ist, sollten Sie [diesen Link] (https://developer.android.com/training/permissions/requesting.html) prüfen und prüfen, ob eine Anfrage zur Laufzeit zur Laufzeit behebt. – Vucko

+0

@Vucko Ich glaube nicht, dass das Problem sein könnte, da "Folder Created" angezeigt wird. –

+0

@ShadabAnsari können Sie sehen, dass dieser Toast angezeigt wird, wenn der Ordner nicht existiert, und wenn 'mkdirs()' keine Ausnahme auslöst? Der Toast wird angezeigt, auch wenn der Ordner nicht erstellt wurde. – Vucko

Antwort

0

Ab Android 6.0 (API Level 23), gewähren Benutzern Berechtigungen für Anwendungen im zweiten Versuch, die Anwendung Toast hält, während die App ausgeführt wird, nicht, wenn sie installieren das:

Hinweis App

Wenn Ihre Ziel-SDK 23 ist, sollten Sie überprüfen, this link und sehen, wenn die Anfrage um Erlaubnis zur Laufzeit behebt es.