2012-02-25 2 views
3

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

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

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

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

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

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

ответ

1

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

Проверьте результат setReadOnly() и убедиться в том, что возвращается true или false.

+0

Я только что проверил, и я пытаюсь сделать это только на SD-карте на эмуляторе. Используя реальное устройство, я успешно использовал setReadOnly() в файле, скопированном в папку/mnt (который читается только на emu). Благодарю. – tabs

+0

Я попробую предложение zxswing, чтобы узнать, работает ли это с SD-картой. Если нет, я буду отмечать ваш ответ как правильный. – tabs