2012-02-25 19 views
3

私のAndroidアプリでは、読み取り専用ファイルをコピーして、新しいバージョンも読み取り専用にしたいと考えています。Androidでファイルをコピーして読み取り専用属性を保持するにはどうすればよいですか?

宛先ファイルでsetReadOnly()メソッドを使用すると、失敗したことを示すfalseが返されます。もちろん、ファイル自体をチェックすると、読み取り専用属性が設定されていないことが示されます。

--edit--デビッドギブンが以下に示唆するように、これは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カードでのみ実行しようとしていました。実際のデバイスを使用すると、/ mntフォルダにコピーされたファイルに対してsetReadOnly()が正常に使用されています(これはemuでのみ読み込まれます)。ありがとう。 – tabs

+0

SDカードで動作するかどうかをzxswingの提案で確認します。そうでない場合は、あなたの答えを正しいものとしてマークします。 – tabs

関連する問題