Pergunta

No meu aplicativo Android, gostaria de poder copiar um arquivo somente leitura e ter a nova versão também somente leitura.

Usar o método setReadOnly() no arquivo de destino retorna apenas false, mostrando que falhou e, claro, verificar o próprio arquivo mostra que ele não teve o atributo somente leitura definido.

--edit-- Como David Given sugere abaixo, isso se aplica apenas a arquivos no cartão SD.Os arquivos internos se comportarão adequadamente com setReadOnly().

Meu arquivo de manifesto tem a linha<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> e sou capaz de realizar todos os tipos de outras operações de arquivo com êxito em meu aplicativo.

Ao procurar uma solução, vi algumas pessoas usando comandos do Linux, e elas disseram que esta é uma maneira 'suja' de fazer isso, então existe uma maneira alternativa 'limpa' disponível para nós?

O aplicativo que estou escrevendo usa Android 2.1, se for relevante.

Foi útil?

Solução

Não acredito que o cartão SD suporte atributos de arquivo como este.Acho que você só pode tornar os arquivos somente leitura no armazenamento interno.(Porque o cartão SD usa um sistema de arquivos FAT, mas o armazenamento interno usa um sistema de arquivos Linux adequado.)

Confira o resultado de setReadOnly() e veja se ele está retornando true ou false.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top