2013-05-18 18 views
0

嘗試創建臨時文件時,獲取「文件的父目錄不可寫」。我正在使用Eclipse和模擬器。我使用的許可,我的清單:父目錄不可寫錯誤Android模擬器

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

下面是代碼:

@SuppressWarnings("static-access") 
public void sendEmail() { 
    Calendar today = new GregorianCalendar(); 
    Log.d(TAG, "Path:" + Environment 
      .getExternalStorageDirectory().getAbsolutePath() 
      + "/GPSTracking/" + MakeTextDate(today) + ".csv"); 
    File tempFile = null; 
    try { 

     tempFile.createTempFile(MakeTextDate(today), ".csv"); 
     FileWriter out = FormatEmail(tempFile); 
    } 
    catch (IOException e) { 
     // error 
     Log.d(TAG, "create temp file:" + e.toString()); 
    } 

    try { 
     Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); 

     emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, 
       "Trip report"); 
     emailIntent 
       .putExtra(Intent.EXTRA_TEXT, "Here is your Trips Report"); 

     emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(tempFile)); 
     emailIntent.setType("plain/text"); 
     startActivity(Intent.createChooser(emailIntent, "Send email...")); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 
+0

什麼是虛擬設備的「SD卡」設置? –

+0

我不知道你的意思? –

+1

Eclipse - > Android設備管理器 - >選擇模擬器運行的虛擬設備 - >編輯 - >您創建虛擬設備時填入的設置頁面。你有SD卡設置。 –

回答

0

你試圖創建存儲的根目錄下的文件,而不是SD卡

tempFile.createTempFile(MakeTextDate(today), ".csv"); 

在寫入日誌時創建文件,並提供外部存儲的完整路徑。

+0

我不明白你想說什麼。我嘗試添加Environment.getExternalStorageDirectory()。getAbsolutePath()+「/」+ MakeTextDate(今天),「.csv」,現在它說該目錄不存在:/sdcard/sdcard/5-18-2013.csv –

+0

好的,究竟返回函數MakeTextDate(arg)? – Viacheslav

+0

事實上,你似乎構建了一條很好的日誌路徑,但是對於實際的文件也是如此......即便如此,如果它還不存在,你必須確保你創建了GPSTracking目錄。當然你需要在Manifest的外部存儲權限。 –