2013-02-13 58 views
3

我無法寫入微型X外置SD(到/ mnt/extsd)加H24沒有寫權限在/ mnt/extsd

我在清單

的已插入系統有兩個SD卡,第一個是Environment.getExternalStorageDirectory(到達),但第二隻可達絕對路徑

try{ 
     File file3 = new File("/mnt/extsd/", "file.txt"); 
     BufferedWriter writer = new BufferedWriter(new FileWriter(file3)); 
     writer.write("hello"); 
     writer.flush(); 
     writer.close(); 

    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

異常返回此消息 /mnt/extsd/file.txt:開放失敗:EACCES(Permissio否認)

有什麼建議嗎?

+0

我已經在清單 插入<使用權限android:name =「android.permission.WRITE_EXTERNAL_STORAGE」/> 該系統有兩個SD卡,第一個是可以通過Environment.getExternalStorageDirectory()訪問,但第二個只能通過絕對路徑 – gio 2013-02-13 09:10:08

回答

3

在Android清單文件中添加以下權限。

寫權限

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

閱讀權限

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

您需要添加的權限

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

Androi dManifest.xml文件。

編輯

如果您已經添加了該權限,仍然得到許可被拒絕的錯誤,你可能會被寫入只讀目錄,或者你不能在該目錄的根目錄寫入。

您可能需要檢查目錄是否可寫入。財產以後這樣的:

file3.canWrite() 

或者,你可以嘗試添加一個子目錄,寫

File newDir = new File("/mnt/extsd/myFiles"); 
newDir.mkdirs(); 
File file3 = new File(newDir.getAbsolutePath(), "file.txt"); 
+2

訪問,總是使用'Environment.getExternalStorageDirectory()'獲取SD-CARD路徑而不是硬編碼字符串 – 2013-02-13 08:59:09

+0

嗨,我已經添加了該權限。問題出在第二個sd。該系統有兩個SD卡。第一個被os使用,第二個必須包含我所有的文件,而我不能寫入它。 – gio 2013-02-13 09:07:45

+0

是的,我仍然得到錯誤。因爲問題出在我設備的第二個sd上。在第一個SD我沒有問題寫入和讀取文件。 – gio 2013-02-13 09:17:40

1

簡單剛剛添加的權限在Android清單文件之前。

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

,如果你已經添加在隨後的清單文件的權限, 嘗試這些:

1) File file1 = new File(Environment.getExternalStorageDirectory() + "file.txt"); 

2) File file2 = new File("file:///mnt/extsd/", "file.txt"); 

3) File file3 = new File("file:///mnt/sdcard/", "file.txt"); 

然後用

String filepath = "file:///" + file1.getAbsolutePath();