Страницы

Поиск по вопросам

вторник, 28 января 2020 г.

В чем отличие getExternalFilesDir от getExternalStorageDir?

#java #android


В чем отличие getExternalFilesDir от getExternalStorageDir???
    


Ответы

Ответ 1



Метод getExternalFilesDir(...) возвращает объект класса File, позиционируемый по пути Android/data/data/%APP_PACKAGE_NAME%/ в primary shared/external storage. Метод getExternalStorageDirectory() возвращает объект класса File, позиционируемый по пути (примерно) mnt/sdcard/ (путь к primary shared/external storage).

Ответ 2



В Android есть несколько типов хранилищ, на которых могут храниться файлы: внутреннее (internal storage), основное внешнее (primary external storage), дополнительное внешнее (seconday external storage). Основное внешнее хранилище - это дополнительная SD-карта или часть встроенной флэш-памяти, выделенная в отдельную файловую систему. Эта файловая система доступна для чтения и записи приложениям. Путь к корню основного внешнего хранилища можно получить с помощью getExternalStorageDirectory(). Операционная система для своих нужд может создавать каталоги на основном внешнем хранилище. В частности на нем создаются каталоги для данных приложений. Структура этих каталогов от версии к версии и от устройства к устройству может меняться, поэтому для удобства разработчикам предоставлени функция getExternalFilesDir(), которая возвращает путь к каталогу приложения на внешнем хранилище. При необходимости этот каталог будет создан операционной системой. У функции getExternalFilesDir() есть параметр, в котором можно указать тип данных, которые предполагается хранить: DIRECTORY_PICTURES, DIRECTORY_MUSIC и т.д. Для каждого типа данных будет создан свой каталог. Обратите внимание, что работа с данными в каталоге getExternalFilesDir() на Android старше 4.4 (SDK меньше 18) требует разрешения: Работа с остальными каталогами внешнего хранилища требует разрешения всегда. Причем это разрешение "опасное", поэтому начиная с SDK 23 его необходимо запрашивать у пользователя и проверять результат (но это тема отдельного рассказа). Советую прочитать еще раз "Руководство", там есть целый раздел. Если сложно с английским, в разделе "Курсы" есть рассказ на русском про работу с файлами.

Комментариев нет:

Отправить комментарий