Ответ 1
public Файл getFilesDir()
Возвращает абсолютный путь к каталогу в файловой системе, где хранятся файлы, созданные с помощью openFileOutput(String, int)
.
публичный статический файл getExternalStorageDirectory()
Вернуть основной каталог внешнего хранилища. Этот каталог в настоящее время недоступен, если он был установлен пользователем на своем компьютере, был удален с устройства или возникла какая-то другая проблема. Вы можете определить его текущее состояние с помощью getExternalStorageState()
.
Примечание. Не путайте слово "внешний" здесь. Этот каталог лучше воспринимать как медиа/общую память. Это файловая система, которая может хранить относительно большой объем данных и совместно используется во всех приложениях (не обеспечивает разрешения). Традиционно это SD-карта, но она также может быть реализована как встроенное хранилище в устройстве, которое отличается от защищенного внутреннего хранилища и может быть смонтировано как файловая система на компьютере.
На устройствах с несколькими пользователями (как описано UserManager) каждый пользователь имеет собственное изолированное внешнее хранилище. Приложения имеют доступ только к внешнему хранилищу для пользователя, которого они запускают как.
Если вы хотите, чтобы ваш путь приложения использовал getFilesDir()
, который даст вам путь /data/data/your package/files
Вы можете получить путь, используя Environment
var вашего data/package
, используя
getExternalFilesDir(Environment.getDataDirectory().getAbsolutePath()).getAbsolutePath();
, который вернет путь из корневого каталога вашего внешнего хранилища, как
/storage/sdcard/Android/data/your pacakge/files/data
Чтобы получить доступ к внешним ресурсам, вы должны предоставить разрешение WRITE_EXTERNAL_STORAGE
и READ_EXTERNAL_STORAGE
в вашем манифесте.
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
Ознакомьтесь с Лучшей документацией, чтобы получить пути директив