getExternalStorageDirectory()
return 휴대 전화의 SD 카드 경로. (화웨이 Y320 - android 4.2.2).android 모든 기기의 모든 외부 저장 경로를 가져옵니다.
이제 경로를 얻는 방법 휴대 전화 저장소 모든 기기 및 모든 API 경로? 아래 스크린 샷에서 약탈.
getExternalStorageDirectory()
return 휴대 전화의 SD 카드 경로. (화웨이 Y320 - android 4.2.2).android 모든 기기의 모든 외부 저장 경로를 가져옵니다.
이제 경로를 얻는 방법 휴대 전화 저장소 모든 기기 및 모든 API 경로? 아래 스크린 샷에서 약탈.
나는이 방법을 사용하고 있습니다 : 안드로이드 5.0 아래
public static final String SD_CARD = "sdCard";
public static final String EXTERNAL_SD_CARD = "externalSdCard";
private static final String ENV_SECONDARY_STORAGE = "SECONDARY_STORAGE";
public static Map<String, File> getAllStorageLocations() {
Map<String, File> storageLocations = new HashMap<>(10);
File sdCard = Environment.getExternalStorageDirectory();
storageLocations.put(SD_CARD, sdCard);
final String rawSecondaryStorage = System.getenv(ENV_SECONDARY_STORAGE);
if (!TextUtils.isEmpty(rawSecondaryStorage)) {
String[] externalCards = rawSecondaryStorage.split(":");
for (int i = 0; i < externalCards.length; i++) {
String path = externalCards[i];
storageLocations.put(EXTERNAL_SD_CARD + String.format(i == 0 ? "" : "_%d", i), new File(path));
}
}
return storageLocations;
}
외부 디렉토리는 더 나은 미디어/공유 스토리지로 생각 될 수있다. 상대적으로 많은 양의 데이터를 저장할 수있는 파일 시스템이며 모든 응용 프로그램에서 공유됩니다 (사용 권한을 강제하지 않습니다). 전통적으로이 카드는 SD 카드이지만 보호 된 내부 저장소와 구별되며 컴퓨터에 파일 시스템으로 마운트 할 수있는 장치에 기본 제공 저장소로 구현 될 수도 있습니다.
Environment.getDataDirectory()
권장 ... 당신이 사용자 데이터 디렉토리의 경우 읽기 : Android External Storage
건배!
in my screenshot ** 전화 보관 **은 외부 또는 내부입니까? (나는 unistall app 후에 파일을 제거하고 싶지 않다 !!!) – grizzly
@ grizzly, 그게 달려있다. 일부 안드로이드 장치에서는 휴대 전화 저장 장치가 유일한 저장 장치이며 외부 장치 (8GB 이상의 내부 저장 장치가있는 장치)로 작동하는 SD 카드 (외부 저장소)를 삽입 할 수 없습니다. 외부 저장소가 있는지 여부를 구별하기위한 코드와 만약 그렇다면 무엇을 할 것인지, 어떤 경로를 취할 것인가 ... –
오케이, 귀하의 의견으로는 @Fedor Kazakov 대답은 사실이며 모든 장치를 수정합니까? – grizzly
이동식 SD 카드의 경로를 결정하기 위해 더 신뢰할 수있는 방법이 없습니다. 장치마다 다르며 때로는 불가능합니다. 위의 경우 getExternalFilesDirs()를 사용해보십시오. 그것은 두 가지 경로를 줄 것입니다. 두 번째 카드에 있습니다. – greenapps
By 덧붙여서 : 당신은 그림이 틀립니다. getExternalStorageDirectory는 'SD 카드'가 아니라 '전화 저장 공간'을 제공합니다. – greenapps
그래서 나는 처음부터 틀린 글을 읽었다는 것을 알고 있습니다. 대부분의 질문이 SD 카드의 경로를 얻는 방법 인 것처럼 혼란 스러웠습니다. 하지만 당신이 말하는 것은 불가능합니다. 'getExternalStorageDirectory()'는'Phone storage' 경로를 전달합니다. 흔히'/ storage/emulated/0' 또는'/ mnt/sdcard' 또는'/ sdcard'입니다. 당신이 얻는 것을 말하십시오. – greenapps