2013-01-11 16 views
0

我試圖保存由相機意圖拍攝的圖像。我的代碼沒有工作,所以當我添加檢查目錄是否是作出的時候,它應該是沒有的。什麼可能是錯誤的? 我試着在模擬器上。使用相機意圖時未創建目錄Android

01-11 13:50:28.946: D/file(1161): file is /mnt/sdcard/M3 
01-11 13:50:28.946: D/file(1161): photo is /mnt/sdcard/M3/3_1.jpg 

我在日誌中獲得上述內容。

下面是代碼我有上的按鈕將打開相機

File sdCard = Environment.getExternalStorageDirectory(); 
      File file = new File (sdCard.getAbsolutePath() , File.separator + "/M3"); 
      file.mkdirs(); 
      String name = e_id + "_" + (size+1)+ ".jpg"; 
      File newfile = new File(file,name); 
      newfile.mkdir(); 

       Log.d("file"," file is " + file.toString()); 
       Log.d("file"," photo is " + newfile.toString()); 


      if(!file.mkdir()) 
      { 
       Log.d("file"," not created "); 
       } 
      if(!newfile.mkdir()) 
      { 
       Log.d("newfile"," not created "); 
       } 
      else 
      { 
       outputFileUri = Uri.fromFile(newfile); 
       Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
       intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); 
       startActivityForResult(intent, TAKE_PICTURE); 


      } 

回答

0

替換此線

File file = new File (sdCard.getAbsolutePath() , File.separator + "/M3"); 

與這一個。

File file = new File (sdCard.getAbsolutePath()+"/YourDirectoryName"); 
1

的問題是,你正在處理的圖像文件的目錄:

newfile.mkdir(); 

嘗試:

File sdCard = Environment.getExternalStorageDirectory(); 
File dir = new File(sdCard.getAbsolutePath(), File.separator + "/M3"); 
if (!dir.mkdirs()) 
{ 
    Log.e(TAG, "Failed to create directory " + dir); 
    return false; // Assuming this is in a method returning boolean 
} 
String filename = e_id + "_" + (size+1)+ ".jpg"; 
File file = new File(dir, filename); 

Log.d(TAG, "dir is " + dir.toString()); 
Log.d(TAF, "file is " + file.toString()); 

outputFileUri = Uri.fromFile(file); 
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); 
startActivityForResult(intent, TAKE_PICTURE); 

注意:您需要更好地命名變量; file不是它是目錄的文件。 newfile是您在此代碼段中唯一關心的文件,因此請將其稱爲file