2010-07-28 2 views
2

API 레벨 8부터는 Environment.getExternalStoragePublicDirectory()이라는 특수 디렉토리에 대한 핸들을 요청할 수 있습니다. 이 유형은 DIRECTORY_MUSIC, DIRECTORY_PICTURES 등이 있습니다.Android 특수 디렉토리

문서 (Word 문서, PDF 등)와 같은 다른 미디어 유형에 해당하는 디렉토리를 찾고 있습니다. HTC Desire에는 정확히 내가 원하는대로 보이는 /sdcard/My Documents/ 폴더가 있지만 위의 방법과 함께 사용하기위한 지정자는 DIRECTORY_입니다. 이것은 내가 신뢰할 수있는 표준 안드로이드 디렉토리인가요?

getExternalStoragePublicDirectory()을 사용할 수 없으면 대신 getExternalStorageDirectory()을 사용해야합니다. 그 대신에 나를 SD 카드의 루트로 지정해야합니다. 내가 명시 적으로 루트 아래에 My Documents의 존재를 확인하고 있다면 거기에 그것을 사용할 수 있습니다.

// default document save location 
File defaultSaveDir = Environment.getExternalStorageDirectory(); 
File myDocs   = new File(defaultSaveDir, "My Documents"); 
if (myDocs.exists() && myDocs.isDirectory()) 
    defaultSaveDir = myDocs; 

더 나은 방법이 있나요 :

이 내가 가진 무엇인가?

답변

2

"내 문서"가 내 넥서스에 없습니다. 대신 "Documents"디렉토리가 있습니다. 그래서 그것은 휴대용 방식으로 도움이되지 않습니다.

SDK 8에서는 getExternalFilesDir을 사용해야합니다. 그러나 잡을 수는 있습니다. 내 Blog에 작은 기사를 썼습니다.

는 결국 내가 사용 : 그것은 SDK8 이후 새로운 선호하는 방법을 보일으로
final java.io.File Storage = android.os.Environment.getExternalStorageDirectory(); 
final java.io.File Dir = new java.io.File (Storage, "Android/FX-603P"); 
Dir.mkdirs(); 

내가 "안드로이드"기본 디렉토리를 사용했다.

+0

감사합니다. 언급 한 이유 때문에 getExternalFilesDir을 사용할 수 없습니다. "내 문서"와 "문서"가 다른 장치에서 다른 이름으로 표시되는 것은 유감입니다. –

+0

결국 버그입니다. http://groups.google.com/group/android-developers/browse_thread/thread/b68d40b1f13e12df/f3f37cc59d35617 끝까지 스크롤하십시오. 모든 장치가 업데이트 될 때까지 얼마나 걸릴지 궁금합니다. – Martin

관련 문제