IT박스

getExternalFilesDir과 getExternalStorageDirectory ()의 차이점

itboxs 2020. 10. 26. 07:50
반응형

getExternalFilesDir과 getExternalStorageDirectory ()의 차이점


ExternalFiles는 API 8 이상에서 사용되고 getExternalStorageDirectory는 7 이하에서 사용된다는 것을 이해합니다. 그러나 나는 사용 사이에 약간 혼란 스럽습니다. 예를 들어 존재하는 폴더가 있는지 확인하고 싶었고 이전에는 다음과 같은 것을 사용했습니다.

File ChildFolder = new File(Environment.getExternalStorageDirectory() + "/ParentFolder/Child");

그러나 내가 보는 모든 예제는 getExternalFilesDir (null), File.ext를 사용하도록 말합니다. API 8 이상이므로이 방법을 사용하고 싶지만 폴더를 어떻게 확인합니까? 다른 지점에서 파일이 있는지 확인하지만 지금은 폴더가 있는지 확인하고 싶습니까 ??

TIA JB


getExternalFilesDir()

SD 카드의 Android / data / data / your_package / 내부 파일 폴더 의 경로를 반환합니다 . 앱에 필요한 모든 파일 (예 : 웹 또는 캐시 파일에서 다운로드 한 이미지)을 저장하는 데 사용됩니다. 앱이 제거되면이 폴더에 저장된 모든 데이터도 사라집니다.

getExternalStorageDirectory()

SD 카드의 루트 경로를 반환합니다 (예 : mnt / sdcard / ). 이 경로에 데이터를 저장하고 앱을 제거하면 해당 데이터가 손실되지 않습니다.


우선 내부 저장소, 외부 저장소 (일명 기본 외부 저장소) 및 보조 외부 저장소의 차이점을 이해해야합니까?

내부 저장소 : 설치된 앱 (또는 기기 루팅)을 제외하고는 사용자가 액세스 할 수없는 저장소입니다. 예 : data / data / app_packageName

기본 외부 저장소 : "사용자가 USB 케이블을 연결하고 호스트 컴퓨터에 드라이브로 마운트하여 액세스 할 수있는"내장 공유 저장소에 있습니다. 예 : Nexus 5 32GB라고 할 때.

보조 외부 저장소 : 이동식 저장소. 예 : SD 카드.

getExternalFilesDir (String type)

기본 외부 저장소의 Android / data / data / your_package / 내부 파일 폴더 경로를 반환합니다. 내장 스토리지입니다.

getExternalStorageDirectory ()

보조 외부 저장소 디렉터리의 경로를 반환합니다.


! 중요 업데이트! 이 질문을 접하는 사람을 위해.

이것은 다소 오래된 질문이므로 추가 정보를 제공하고 싶었습니다. KitKat은 WRITE_EXTERNAL_STORAGE 권한이 있는 앱도 외부 저장소의 Android / data / data / your_package / 에만 있기 때문에 일명 getExternalFilesDir()

쓰기를 시도하면 getExternalStorageDirectory() + "/somefolder/anotherfolder/"대부분의 장치에서 SecurityException이 발생합니다.

참고 URL : https://stackoverflow.com/questions/10123812/diff-between-getexternalfilesdir-and-getexternalstoragedirectory

반응형