1

私のアプリケーションでは、サーバーから多くのファイルをダウンロードしています。それらをSDカードにキャッシュしたい。そのために、fallowing APIを使用しています..

context.getExternalCacheDir();

しかし、問題は、それらを内部 SD カード (つまり、リムーバブルでない外部ストレージ) に保存できないことです。それらは「/mnt/sdcard/external_sd/Android/data/」に保存されています。

削除できない Android キャッシュに多くのファイルを保存する方法を教えてください。

よろしく、 スリニバス

4

1 に答える 1

1

Environment.getExternalStorageDirectoryのインテリセンスから:

"Androidの外部ストレージディレクトリを取得します。ユーザーがコンピュータにマウントした場合、デバイスから削除した場合、またはその他の問題が発生した場合、このディレクトリに現在アクセスできない可能性があります。現在の状態はgetExternalStorageState( )。

注:ここで「外部」という言葉と混同しないでください。このディレクトリは、メディア/共有ストレージと考えるとよいでしょう。これは、比較的大量のデータを保持でき、すべてのアプリケーション間で共有されるファイルシステムです(権限を強制しません)。従来、これはSDカードですが、保護された内部ストレージとは異なり、コンピューターにファイルシステムとしてマウントできるデバイスに組み込みストレージとして実装することもできます。

複数の「外部」ストレージディレクトリ(安全なアプリストレージとマウント可能な共有ストレージの両方など)を備えたデバイスでは、このディレクトリは、ユーザーが操作する「プライマリ」外部ストレージを表します。

ユーザーのルート名前空間を汚染しないようにするために、アプリケーションはこの最上位ディレクトリを直接使用しないでください。アプリケーション専用のファイルはすべて、Context.getExternalFilesDirによって返されるディレクトリに配置する必要があります。このディレクトリは、アプリケーションがアンインストールされた場合にシステムが削除します。他の共有ファイルは、getExternalStoragePublicDirectory(String)によって返されるディレクトリの1つに配置する必要があります。」

于 2011-06-28T19:19:19.263 に答える