Как скопировать файлы и сохранить их атрибут «только для чтения» в Android?

StackOverflow https://stackoverflow.com/questions/9443074

Вопрос

В моем приложении для Android я хотел бы иметь возможность копировать файл, доступный только для чтения, и чтобы новая версия также была доступна только для чтения.

Использование метода setReadOnly() для целевого файла возвращает только false, показывая, что это не удалось, и, конечно же, проверка самого файла показывает, что для него не установлен атрибут только для чтения.

--edit-- Как предлагает Дэвид Гивен ниже, это применимо только к файлам на SD-карте.Внутренние файлы будут вести себя соответствующим образом с помощью setReadOnly().

В моем файле манифеста есть строка<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> и я могу успешно выполнять любые другие операции с файлами в своем приложении.

В поисках решения я видел пару человек, использующих команды Linux, и они сказали, что это «грязный» способ сделать это, так есть ли у нас альтернативный «чистый» способ?

Приложение, которое я пишу, использует Android 2.1, если это актуально.

Это было полезно?

Решение

Я не верю, что SD-карта поддерживает такие атрибуты файлов.Я думаю, что вы можете сделать файлы доступными только для чтения во внутренней памяти.(Поскольку SD-карта использует файловую систему FAT, а внутреннее хранилище использует подходящую файловую систему Linux.)

Проверьте результат setReadOnly() и посмотреть, вернется ли он true или false.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top