繁体   English   中英

已保存的位图未显示在SD卡上

[英]Saved Bitmap doesn't appear on SD Card

我正在开发一个想要将某些位图保存到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卡时,我仍然看不到它们。

根据我的经验,当我忘记fileOutPutStream.flush();时,我曾发出过类似的fileOutPutStream.flush(); close()之前。

您确定要设置写入SD卡的权限吗? 尝试设置这个:

   WRITE_EXTERNAL_STORAGE

编辑:好的,试试这个:

    Environment.getExternalStorageDirectory().getAbsolutePath()

代替:

    Environment.getExternalStorageDirectory().toString()

甚至创建这样的目录:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM