/ mnt / sdcard和/ sdcard之间有区别吗?

时间:2012-09-24 12:16:23

标签: android android-image android-file

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

            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.PNGmnt/是我无法通过OutputStream out = new FileOutputStream(file);的罪魁祸首?因为我只能在文件目录中看到sdcard/

谢谢!

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

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

修改

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

WRITE_EXTERNAL_STORAGE

答案 2 :(得分:0)

像这样使用

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

 FileOutputStream os = null;
 os = new FileOutputStream(filePath); 
 os.write(write it to file);
 os.close();