2012-08-03 19 views
0

我想保存到卡中的图片,我得到的错误“<文件路径>(是一个目录)” altough文件的绝对路径是正确的,该文件是一个图像而不是一个目录。我在这里做错了什么?我需要提到的是,在将映像保存到磁盘之前,我创建了所有必需的目录,并拥有所有权限。的Android - 图像保存到卡引发错误

file.getAbsolutePath() //returns something like this: 

/mnt/sdcard/app_name/folder/image.jpg 

.. 我构建这样的图片文件:File img = new File(dir, image.jpg);

public static void saveImg(File pic, Bitmap picture) { 
    try { 
     FileOutputStream out = new FileOutputStream(pic); 
     picture.compress(Bitmap.CompressFormat.JPEG, 100, out); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 
+0

请发表您的logcat的输出。 – Erol 2012-08-03 22:05:57

+0

/mnt/sdcard/Droste/Report_1343677354477/media/Büro/Wohnzimmer_Building_image_1344030487904.jpg(是一个目录) – androidu 2012-08-03 22:06:53

+0

/mnt/sdcard/app_name/folder/image.jpg看起来不像/ mnt/sdcard/Droste/Report_1343677354477/media /BÜRO/ – 2012-08-03 22:12:42

回答

2

第一步是检查你的SD卡,看看如果你真的有这个名字的目录(如果你是在任何机会创建流之前在图像文件上调用mkdirs())。

然后,您可以尝试使用此代码来创建流:

String fileName = "image.jpg"; 
File path = Environment.getExternalStorageDirectory(); 
File file = new File(path, fileName); 
path.mkdirs(); 
OutputStream os = new FileOutputStream(file); 
+0

它的工作。我没有在父目录上调用mkDirs()。谢谢! – androidu 2012-08-03 22:18:31

+1

不客气。很高兴帮助。 – Erol 2012-08-03 22:19:29