2016-10-17 5 views
1

내 Android 장치의 ExternalStorageDirectory에 무언가를 쓰려고합니다. 이를 테스트하기 위해이 디렉토리에 간단한 폴더를 만들려고했습니다. 그것은 작동하지 않았으므로 나는 넘어 졌어 this stackoverflow 스레드. 내가 가장 upvoted 예제 코드를ExternalStorage에서 폴더 만들기

File folder = new File(Environment.getExternalStorageDirectory() + "/map"); 
boolean success = true; 
if (!folder.exists()) { 
success = folder.mkdir(); 
} 
if (success) { 
    // Do something on success 
} else { 
    // Do something else on failure 
} 

를 사용하고 givven WRITE_EXTERNAL_STORAGE 권한을 설정하면 폴더의 생성은 항상 실패 -이 예외는 아니다,하지만 실행 후 f.exists()은 여전히 ​​false입니다. 내 Nexus 5X 및 최신 Nexus 5X-Emulator에서 테스트했습니다.

에뮬레이터에서 Environment.getExternalStorageState()virtual SD-card을 장착했지만 not-mounted을 반환합니다 (이것은 나에게도 이상하게 보입니다). 내 실제 장치에서는 mounted을 반환합니다. 그래서 어떤 문제도 보이지 않습니다. 왜 코드가 작동하지 않아야합니다.

폴더 생성 실패 및/또는 Environment.getExternalStorageState()의 작동에 대한 모든 조언을 환영합니다.

+1

https://stackoverflow.com/questions/32635704/android-permission-doesnt-work처럼 폴더를 manifiest 파일

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

에이 권한을 추가하고 작성해야합니다 -e-have-i-have-declared-it – CommonsWare

+0

감사합니다.이 게시물은 완전히 해결되었습니다. – FlashTek

답변

0

하면이

String folder_main = "map"; 

File f = new File(Environment.getExternalStorageDirectory(), folder_main); 
if (!f.exists()) { 
    f.mkdirs(); 
}