2016-09-04 9 views
0
이 코드를 사용하는 안드로이드 응용 프로그램에서 외부 저장 장치에 디렉토리를 만드는 경우

:수 있도록 외부 디렉토리 안드로이드

File mDirectory = new File(Environment.getExternalStorageDirectory() + "/myDir"); 

     if (!mDirectory.exists()) { 

      mDirectory.mkdirs(); 

      if (!mDirectory.mkdirs()) { 
       Log.e("App", "failed to create directory"); 
      } 
     } 

하지만 디렉토리가 생성되지 않은 모든 시간이 오류 메시지 logcat에 표시 :

App: failed to create directory 

mkdir()mkdirs()도 사용합니다. 결과는 동일합니다. 실수는 어디 있습니까?

업데이트 : 당신은 두 번 mkdirs를 호출

의 AndroidManifest.xml

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

답변

1

이 앱을 실행중인 Android 버전은 무엇입니까? 장치가 안드로이드 6.0 (API 레벨 23) 이상을 실행, 앱의 targetSdkVersion을 23 이상, 실행시 사용자의 응용 프로그램 요청 권한 인 경우 Android Developer Website에서이 인용

을 말한다 . 사용자는 언제든지 사용 권한을 취소 할 수 있으므로 앱에서을 실행할 때마다 사용 권한이 있는지 여부를 확인해야합니다.

기기가 Android 5.1 (API 레벨 22) 이하 또는 앱의 targetSdkVersion이 22 이하인 경우 사용자가 앱을 설치할 때 권한을 부여하도록 시스템에 요청합니다.

이제는 Dangerous permissions이라는 개념이 있습니다. 사용자가 런타임에 부여 할 필요가 권한을하고 WRITE_EXTERNAL_STORAGE 어떻게 실행시 권한을 요청하는

는`장치 저장 이름에 디렉토리가없는
1

합니다. 첫 x 째 호출은 디렉토리를 작성합니다. 두 x 째 호출은 디렉토리가이 L 존재하기 때.에 false를 리턴합니다.

+0

당신을 가르 칠 것입니다 안드로이드 개발자 웹 사이트에서 그

tutorial 중 하나입니다 MYDIR ' –

+0

권한이 있습니까? – F43nd1r

+0

예, 질문이 업데이트되었습니다. –