2011-08-06 5 views
8

일부 데이터를 사용자의 외부 디렉토리 (예 : SD 카드)에 저장하려고하지만 이상한 문제가있는 것 같습니다. Environment.getExternalStorageDirectory()을 사용하여 "mnt/sdcard /"(괜찮습니다)를 반환합니다. 나는이 디렉토리에 두 개의 폴더를 만들 그래서 수행외부 저장소에 데이터 저장

File main = new File(getExternalStorageDirectory() + "/my_app/some_data"); 
if(!main.isDirectory()) 
    main.mkdirs(); 

지금 나는이 디렉토리 "MNT/SDCARD /을 my_app/some_data"을 확인하지만, SD보고 파일 관리자 사용 후 것이라고 생각 이 폴더가 "mnt/sdcard/my_app/mnt/sdcard/my_app/some_data"에 생성 된 것으로 밝혀졌습니다. 이것은 매우 기괴합니다. 아무도이 문제를 해결하는 방법을 말해 줄래?

답변

10

String packageName = this.getPackageName(); 
File myFilesDir = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "Android" + File.separator + "data" + File.separator + packageName + File.separator + "files"); 
myFilesDir.mkdirs(); 

그것은 exacly 내가 SD 카드에 작업 디렉토리를 작성하는 데 사용할 무슨 ... 다음을 시도하고 당신이 무엇을 얻을 참조하십시오. 나를 위해 ...

/mnt/sdcard/Android/data/com.mycompany.myApp/files 

... 여기서 'com.mycompany.myApp'는 내 앱의 실제 패키지 이름입니다.

+0

약간의 수정과 약간의 코드 추가 후, 나는 그것을 작동하게했다, 고마워! – Brian

+0

도와 줘서 기쁩니다. 재미있게 보내십시오. – Squonk

+0

안녕하세요, 여기에 대답을 추가 할 수 있습니다. – Loshi

관련 문제