102

ExternalFiles は API 8 以降で使用され、getExternalStorageDirectory は 7 以降で使用されることを理解しています。しかし、私は使用の間で少し混乱しています。たとえば、存在するフォルダーを確認したかったのですが、以前は次のようなものを使用していました。

File ChildFolder = new File(Environment.getExternalStorageDirectory() + "/ParentFolder/Child");

ただし、私が目にするすべての例は、getExternalFilesDir (null)、File.ext を使用するように言っています。私は API 8 を超えているので、この方法を使用したいのですが、フォルダを確認するにはどうすればよいですか? 別の時点でファイルの存在を確認しますが、今のところ、フォルダーが存在するかどうかを確認したいだけですか??

4

4 に答える 4

149
getExternalFilesDir()

SD カードのAndroid/data/data/your_package/内のファイルフォルダーへのパスを返します。アプリに必要なファイル (Web からダウンロードした画像やキャッシュ ファイルなど) を保存するために使用されます。アプリをアンインストールすると、このフォルダーに保存されているデータも失われます。

getExternalStorageDirectory()

SD カードへのルート パスを返します (例: mnt/sdcard/ )。このパスにデータを保存してアプリをアンインストールしても、そのデータは失われません。

于 2012-04-12T12:57:56.963 に答える
20

! 重要なアップデート!この質問に出くわした人のために。

これはやや古い質問であるため、追加情報を提供したかっただけです。KitKatでは、 WRITE_EXTERNAL_STORAGE権限を持つアプリでさえ、外部ストレージのAndroid/data/data/your_package/への書き込みのみが許可されているため、別名 getExternalFilesDir()

書き込みを試みるとgetExternalStorageDirectory() + "/somefolder/anotherfolder/"、ほとんどのデバイスで SecurityException が発生します。

于 2015-03-03T10:08:46.643 に答える