Подтвердить что ты не робот

Android Получить приложение "Главная" Каталог данных

Простой вопрос, связанный с каталогом "home" по умолчанию, когда приложение записывает во внутреннюю память. По умолчанию любые созданные файлы помещаются ОС (2.2) в:

/data/data/your.package/files

При чтении в файлах используется то же значение по умолчанию, при сохранении в соответствующем контексте через openFileInput(), openFileOutput(). Но если мне нужно проверить существование файла, например, используя класс File, мне нужно указать весь путь в конструкторе.

Я вижу, что есть Environment.getDataDirectory() (возвращает /data), Environment.getRootDirectory() (возвращает /system) и т.д., но ничего не связано с получением каталога "home" приложения.

Это не огромная сделка, но я бы предпочел не записывать полный путь в мой приложение для файла (скажем, имя пакета изменяется, скажем, изменение пути в будущей версии ОС), если есть какой-то способ чтобы программно ссылаться на каталог "домашний".

4b9b3361

Ответ 1

Конечно, никогда не терпит неудачу. Нашел решение примерно через минуту после публикации вышеуказанного вопроса... решение для тех, у кого могла быть одна и та же проблема:

ContextWrapper.getFilesDir()

Найден здесь.

Ответ 2

Вы можете попробовать Context.getApplicationInfo().dataDir если вы хотите папку с постоянными данными пакета.

getFilesDir() возвращает подстроку этого.

Ответ 3

Получить путь к файлу в пакете приложений;

ContextWrapper c = new ContextWrapper(this);
Toast.makeText(this, c.getFilesDir().getPath(), Toast.LENGTH_LONG).show();