我正在尝试将位图保存到“图片”目录中。这是代码
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/
。谢谢!
最佳答案
您可以使用此Environment.getExternalStorageDirectory()
作为mnt/sdcard或sdcard/来获取和访问sdcard目录,该目录取决于设备访问操作系统的方式并使用外部目录,而不必担心此方法返回的是不同的设备和不同的目录。
编辑
要访问外部存储需要权限,并在androidmanifest.xml
文件中定义为用户权限
WRITE_EXTERNAL_STORAGE
关于android -/mnt/sdcard和/sdcard有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12564884/