2012-08-03 35 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