2011-03-04 171 views
2

我試着將數據保存到SD卡的Android目錄問題,起初我試圖使用getExternalFilesDir app目錄內私下saave它externalStorage,但給我的NullPointerException所以我嘗試給其他方式下面,它的工作,但是當我想存儲文件到自定義目錄,我想自己命名它給我的錯誤:將圖片保存到SD卡

FileOutputStream os; 
dirName = "/mydirectory/"; 
     try { 
      if (android.os.Environment.getExternalStorageState().equals(
        android.os.Environment.MEDIA_MOUNTED)){ 
       File sdCard = Environment.getExternalStorageDirectory(); 
       File dir = new File (sdCard.getAbsolutePath() + dirName); 
       dir.mkdirs(); 
       //File file = new File(this.getExternalFilesDir(null), this.dirName+fileName); //this function give null pointer exception so im using other one 
       File file = new File(dir, dirName+fileName); 
       os = new FileOutputStream(file); 
      }else{ 
       os = context.openFileOutput(fileName, MODE_PRIVATE); 
      } 
      resizedBitmap.compress(CompressFormat.PNG, 100, os); 
      os.flush(); 
      os.close(); 
     }catch(Exception e){ 

     } 

錯誤日誌:

java.io.FileNotFoundException:/mnt/sdcard/mvc/mvc/myfile2.png (沒有這樣的文件或目錄)

+0

嘗試登錄要傳遞到所有的文件和目錄調用的參數 - 可能你沒有做什麼,你以爲你是。還要檢查所有的返回值,以便知道是否沒有工作。 – 2011-03-04 16:58:14

+0

你有完整的堆棧跟蹤嗎? – thoredge 2011-03-04 17:10:26

回答

8

您的目錄 「到/ mnt/SD卡/ MVC/MVC」 可能不存在。如何改變你的路徑,將圖像存儲在Environment.getExternalStorageDirectory()路徑中,然後從那裏開始工作?

此外,羅伯特指出,要確保你在你的清單有write permission to external storage

編輯 - 創建目錄:

String root = Environment.getExternalStorageDirectory().toString(); 
new File(root + "/mvc/mvc").mkdirs(); 

然後你可以將文件保存到root + "/mvc/mvc/foo.png"

+0

當我直接存儲在像你上面說它工作正常根,但我想創建一個目錄,並命名爲其「形象」,並在其中存儲 – user606669 2011-03-04 16:37:22

+0

我加信息關於創建目錄 – 2011-03-04 16:54:54

+0

工作很大的圖像..謝謝 – user606669 2011-03-04 17:26:16

0

您應該檢查您是否已將所需權限android.permission-group.STORAGE添加到您的應用中。沒有該許可,您將無法訪問SD卡上的任何內容。

BTW:在Android系統我知道SD卡安裝在/sdcard/mnt/sdcard

+0

是的,我已經包括了權限和我檢查文件資源管理器(ddms)它顯示/ mnt/sdcard /但問題是一樣的。但現在我得到這個錯誤,當我改變我的行到這個文件文件=新文件(目錄,dirName); – user606669 2011-03-04 16:30:40

+0

錯誤:java.io.FileNotFoundException:/mnt/sdcard/mydirectory/myfile2.png(是一個目錄) – user606669 2011-03-04 16:33:37

5

你有要求的權限寫入到SD卡?下面的字符串添加到您的應用程序清單:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
0

我發現這本書是非常有幫助的:「臨Android的媒體:開發圖形,音樂,視頻和富媒體應用程序的智能手機和平板」。我注意到一部分允許將圖像和內容保存到SD卡中。

+0

那麼,如果你只是給我發送一些樣本頁面,那麼它會很好看,如果發現有用,請考慮購買它。謝謝,你會在我的個人資料 – user606669 2011-03-04 22:36:26

+0

中找到我的電子郵件地址似乎無法在你的個人資料中找到你的電子郵件地址?如果你能看到我的消息,我會回覆! :) – Stephen 2011-03-04 23:34:03