[解決済み] Androidで外部ストレージにファイルを保存する
2023-03-22 15:51:33
質問
私のアンドロイドアプリケーションで、ディレクトリを作成し、そこにファイルを保存することに少し問題があります。私はこれを行うには、コードのこの部分を使用しています。
String filename = "MyApp/MediaTag/MediaTag-"+objectId+".png";
File file = new File(Environment.getExternalStorageDirectory(), filename);
FileOutputStream fos;
fos = new FileOutputStream(file);
fos.write(mediaTagBuffer);
fos.flush();
fos.close();
しかし、それは例外を投げています。
java.io.FileNotFoundException が発生しました。/mnt/sdcard/MyApp/MediaCard/MediaCard-0.png (そのようなファイルまたはディレクトリはありません)
その行に
fos = new FileOutputStream(file);
もし、ファイル名を :
"MyApp/MediaTag-"+objectId+"
に設定すると動作しますが、ファイルを作成して別のディレクトリに保存しようとすると、例外がスローされます。何が間違っているのでしょうか?
そしてもうひとつの質問です。外部ストレージでファイルをプライベートにして、ユーザーがギャラリーでそれらを見ることができないようにする方法はありますか。
Disk Drive
?
どのように解決するのですか?
SDカードにビットマップを保存するには、この機能を使用します。
private void SaveImage(Bitmap finalBitmap) {
String root = Environment.getExternalStorageDirectory().toString();
File myDir = new File(root + "/saved_images");
if (!myDir.exists()) {
myDir.mkdirs();
}
Random generator = new Random();
int n = 10000;
n = generator.nextInt(n);
String fname = "Image-"+ n +".jpg";
File file = new File (myDir, fname);
if (file.exists ())
file.delete ();
try {
FileOutputStream out = new FileOutputStream(file);
finalBitmap.compress(Bitmap.CompressFormat.JPEG, 90, out);
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
で、マニフェストにこれを追加します。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
EDITです。 この行を使うことで、保存された画像をギャラリービューで見ることができるようになります。
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,
Uri.parse("file://" + Environment.getExternalStorageDirectory())));
このリンクも見てください http://rajareddypolam.wordpress.com/?p=3&preview=true
関連
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] ファイルのコピー方法について教えてください。
-
[解決済み] Androidでアクティビティ起動時にEditTextにフォーカスが当たらないようにする方法
-
[解決済み] Androidの「コンテキスト」とは何ですか?
-
[解決済み] ファイルへの追記はどのように行うのですか?
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
-
[解決済み] Android Studio - あいまいなメソッド呼び出し getClass()
-
[解決済み] Android: ランドスケープモード用の代替レイアウト xml
-
[解決済み] RecyclerViewのアイテムに波及効果を追加する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] ArrayAdapter<myClass> の使用方法
-
[解決済み] Android - タイトルバーに戻るボタンが表示される
-
[解決済み] アンドロイドアプリのユーザーデータを消去する
-
[解決済み] バイト配列の画像ファイルをビットマップに変換するには?
-
[解決済み] これはどういうことですか?失敗 [INSTALL_FAILED_CONTAINER_ERROR]?
-
[解決済み] Android Studioの「未実装メソッドの追加」機能
-
[解決済み] フラグメント間の値の受け渡し方法
-
[解決済み] アンドロイドのdatepickerダイアログで最大の日付を設定するには?
-
[解決済み] google-services.jsonって実際何してるの?
-
[解決済み] HttpURLConnectionを使ったPOSTによるファイル送信