androidで写真などのファイル保存場所は3種類ある
iOSでは、ファイルの置き場所は、アプリサンドボックス内とアプリグループ用とiCloud用と3種類ある。
androidの場合も3種類あり、置き場所によってアプリ間で共有できたりできなかったりする。
androidで写真などのファイル保存場所は次の3種類ある。
<注意点>
・保存場所指定は ContentResolver で insert するときの
MediaStore.Images.Media.EXTERNAL_CONTENT_URI 外部ストレージ
MediaStore.Images.Media.INTERNAL_CONTENT_URI 内部ストレージ
と合わせる必要がある。
<使用例>
Uri uri = cr.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, cv);
1)外部ストレージ パブリックファイル
・フォトなどの他のアプリとファイルを共有できる。
getExternalStoragePublicDirectory()
x (deprecated) getExternalStorageDirectory()
<使用例>
File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), filename);
<パス>
/storage/sdcard0/
2)外部ストレージ プライベートファイル
・フォトなどの他のアプリとファイルを共有できる。
・ファイルは、アプリ・アンインストールと同時に削除される。
getExternalFilesDir()
<使用例>
File file = new File(context.getExternalFilesDir(Environment.DIRECTORY_PICTURES), filename);
<パス>
/storage/sdcard0/Android/data/(package name)/files/
3)内部ストレージ
・アプリ用の内部ディレクトリ(iOSのアプリバンドルと同じ)
・フォトなどの他のアプリとファイルを共有できない。
・アプリ・アンインストールと同時に削除される。
getFilesDir()
<使用例>
File file = new File(context.getFilesDir(), filename);
<パス>
/data/data/(package name)/files/
・番外編
・システムはストレージが不足し始めた場合、警告なしでキャッシュ ファイルを削除する。
getCacheDir()
<使用例>
String fileName = Uri.parse(url).getLastPathSegment();
file = File.createTempFile(filename, null, context.getCacheDir());
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
}
・空き領域チェック
getFreeSpace() または getTotalSpace()
2023年8月 | ||||||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
  |   | 1 | 2 | 3 | 4 | 5 |
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |   |   |
iOS
web
アプリの著作権
ブロックチェーン/暗号技術
新しい社会
禅・大乗仏教
日本のなりたち