Как скрыть папку?

Рейтинг: 0Ответов: 1Опубликовано: 25.02.2015

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

Некоторые могут написать, что храни ресурсы в папке res и не дури головы, но мне необходима папка, в которой будут храниться картинки, которые скачал пользователь, также есть БД, в которой хранятся пути к этим картинкам. Я не хочу, чтобы слишком любопытный пользователь удалил картинки при помощи файлового менеджера и потом это повлияло на работу приложения.

Есть и другой путь, как я думаю, можно тупо, если по нужному пути в БД нету картинки, не выводить её, или если пользователь её переместил куда-нибудь, то использовать FileObserver, но всё же хочется дополнительно оградить пользователя от самого себя. Нашёл инфу, что скрытыми файлами являются те, которые запускаются с именем, содержащим в начале символ точки "."

Также, раз уже завёл этот вопрос, хочу поинтересоваться, где удобнее хранить картинки, а точнее, как их сохранять в подпапке приложения data или obb или ещё какая-нибудь папка предназначенная для таких целей, т.е. функция, которая будет возвращать путь к этой папке.

Ответы

▲ 2Принят

Файлы и папки с точкой в имени можно увидеть сторонним файл менеджером. Можно хранить ресурсы в папке приложения (путь выдаётся командой getFilesDir()), но там не рекомендуется хранить больше одного мегабайта, так как это папка на системном диске и память может кончится. В файл obb записывать нельзя, только считывать.

Можешь сделать свою фичу: например, в папке /sdcard/android/data/you.package.name/ хранить архив zip, защищенный паролем, и через приложение открывать его на запись и добавлять туда файлы, то есть максимум, что сможет юзер, не зная пароль, - удалить весь архив.