Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 保存的位图不';不显示在SD卡上_Android_File_Bitmap_Save_Sd Card - Fatal编程技术网

Android 保存的位图不';不显示在SD卡上

Android 保存的位图不';不显示在SD卡上,android,file,bitmap,save,sd-card,Android,File,Bitmap,Save,Sd Card,我正在开发一个应用程序,其中我想将一些位图保存到SD卡。我看了很多例子和其他问题,并由此编写了以下代码: ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream); String dirPath = Environment.getExternalStorageDi

我正在开发一个应用程序,其中我想将一些位图保存到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 gallery中看到保存的位图,它们确实在一个名为“myFolder”的文件夹中。然而,当我将手机连接到电脑并浏览我的sd卡时,我仍然看不到它们。

根据我的经验,我忘记了
文件输出流.flush()
close()

之前,是否确实设置了写入SD卡的权限?尝试设置此选项:

   WRITE_EXTERNAL_STORAGE
编辑: 好的,试试这个:

    Environment.getExternalStorageDirectory().getAbsolutePath()
而不是:

    Environment.getExternalStorageDirectory().toString()
甚至可以创建如下目录:

    File dir = new File(Environment.getExternalStorageDirectory() + 
                        File.separator + 
                        "myFolder");
    dir.mkdirs();

现在呢?(这既不是批评,也不是澄清要求,因为我理解这个问题)。批评应该是:“你忘了……”。我添加了
fileOutPutStream.flush()但它没有帮助:/