2011-12-14 243 views
1

我得到試圖寫在Android SD卡的MIDI文件時,出現以下錯誤:無法寫入SD卡上的文件(是一個目錄)

12-14 16:22:22.219: ERROR/Thread writer(1108): java.io.FileNotFoundException: /mnt/sdcard/folder/midifiles/file.mid (Is a directory) in /mnt/sdcard/folder/midifiles/ 

這是相關的代碼:

public void writeFile(String filename, String dir, int bpm) throws Exception {   

    File f = new File(dir,filename);  
    if(!f.exists()) { 
     f.mkdirs(); 

     if(!f.createNewFile()) { 
      return; 
     } 
    } 
    FileOutputStream fos = new FileOutputStream(f); 

我通過

Environment.getExternalStorageDirectory() 

接收路徑的相關權限已被包括在內。

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

該文件編寫器位於外部項目/庫...如果這在任何情況下有用的知道。

我想這是一個簡單的錯誤,但我真的不知道這裏出了什麼問題。

在此先感謝。

+0

有沒有在目錄/ mnt文件夾file.mid/SD卡/文件夾/ midifiles/SD卡上? – 2011-12-14 16:37:40

回答

0

您與

f.mkdirs(); 

創建目錄/mnt/sdcard/folder/midifiles/file.mid你應該只是做:

File f = new File(dir);  
if(!f.exists()) { 
    f.mkdirs(); 

    File f1 = new File(dir,filename);  
    if(!f1.createNewFile()) { 
     return; 
    } 
} 

或只是

File f = new File(dir,filename);  
if(!f.exist()) { 
    f.createNewFile(); 
    return; 
} 
+0

這並沒有爲我工作。血腥的事情根本無法識別給定的路徑包含文件的名稱,但它會在設備上的文件名稱作爲文件夾名稱的正確路徑內創建一個文件夾。 – 2011-12-15 17:32:32

0

你在手機上運行嗎?或連接到您的電腦?因爲它可能正在您的電腦上查找。