5

我正在尝试将位图保存到图片目录中。这是代码

            File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);

            File file = new File(path, "test1.PNG");
            try { 
                   path.mkdirs();
                   OutputStream out = new FileOutputStream(file);
                   mBitmap.compress(Bitmap.CompressFormat.PNG, 90, out);
                   out.flush();
                   out.close();

            } catch (Exception e) {
                   e.printStackTrace();
                   Log.w("ExternalStorage", "Error writing " + file, e);
            }

但是执行卡在OutputStream out = new FileOutputStream(file); 我使用调试器并且完整路径返回mnt/sdcard/Pictures/test1.PNG,是mnt/我无法通过的罪魁祸首OutputStream out = new FileOutputStream(file);吗?因为我只能sdcard/在我的文件目录中看到。

谢谢!

4

3 回答 3

3

/sdcard/mnt/sdcard...的软链接,并且/sdcard在文件系统中是只读的,因此更好地使用/mnt/sdcard/..

于 2012-09-24T12:37:48.333 回答
1

您可以使用它Environment.getExternalStorageDirectory()作为 mnt/sdcard 或 sdcard/ 获取和访问 sdcard 目录,它是一个设备相关目录,操作系统如何访问和使用外部目录,无需担心不同的设备和不同的目录通过这种方法返回。

编辑

访问外部存储需要权限并在androidmanifest.xml文件中定义为用户权限

WRITE_EXTERNAL_STORAGE
于 2012-09-24T12:26:26.310 回答
0

像这样使用

 String filePath = "/sdcard/yourfile.txt";

 FileOutputStream os = null;
 os = new FileOutputStream(filePath); 
 os.write(write it to file);
 os.close();
于 2012-09-24T12:23:54.767 回答