ビットマップをSDカードに保存したいアプリを開発中です。多くの例やその他の質問を見て、次のコードを作成しました。
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);
String dirPath = Environment.getExternalStorageDirectory().toString() + "/myFolder";
File dir = new File(dirPath);
dir.mkdirs();
String fileName = "bitmapname.jpg";
File file = new File(dirPath, fileName);
FileOutputStream fileOutPutStream;
try {
boolean created = file.createNewFile();
Log.d("Checks", "File created: " + created);
fileOutPutStream = new FileOutputStream(file);
fileOutPutStream.write(byteArrayOutputStream.toByteArray());
fileOutPutStream.close();
} catch (FileNotFoundException e) {
Log.d("Checks", "FileNotFoundException");
e.printStackTrace();
} catch (IOException e) {
Log.d("Checks", "IOException");
Log.d("Checks", e.getMessage());
e.printStackTrace();
}
このコードの何が問題なのかわかりません。エラーは発生せず、アプリはクラッシュすることなく実行されます。ただし、電話をコンピューターに接続して SD カードを開くと、「myFolder」フォルダーが表示されず、保存した画像がどこにも見つかりません。これがなぜなのかについて何か考えはありますか?
編集:保存されたビットマップが Android ギャラリーに表示され、実際に「myFolder」というフォルダーにあることに気付きました。ただし、電話をコンピューターに接続してSDカードを参照しても、まだ表示されません。