2011-06-02 25 views
0

程序創建一個文件夾的Xoom沒有一個工作SD插槽,因此摩托決定重新將呼叫路由到外部存儲到內部存儲:對Xoom的

String path = Environment.getExternalStorageDirectory().getPath() + "/newfolder/"; 

上面一行返回的路徑Xoom上的內部存儲以及我的Droid上的SD卡。

但是,我在Xoom上寫入此路徑時遇到了問題。就好像它是寫保護的,或者我沒有權限。

此代碼創建我的Droid的SD卡上的文件夾,卻沒有關於我的Xoom的存儲:

File file = new File(path); 
file.mkdir(); 

一個想法是,由於Xoom的僅僅是「僞造」,這是外部存儲,也許應用還需要「內部存儲」權限,但這並沒有解決問題。

+0

我認爲API 8個,最多你應該使用getExternalFilesDir()而不是getExternalStorageDirectory() – jkhouw1 2011-06-02 18:30:52

+0

那麼它不是路徑是正確的問題,因爲我可以從Xoom的的存儲讀取,只是不寫它。 – Matt 2011-06-02 19:03:36

+0

「Xoom沒有可用的SD插槽,因此Moto決定將呼叫重新路由到外部存儲器到內部存儲器」 - 這不僅僅是XOOM所獨有的。我估計有20%的Android設備沒有SD卡插槽。 「外部」並不意味着「可移動」,而是「可從主機PC訪問」。 「這段代碼在我的Droid的SD卡上創建了一個文件夾,但是不在我的Xoom的存儲器上」 - 根據你在這裏的代碼清單,你試圖創建一個已經存在的目錄,因爲存在'path'。考慮發佈更完整的來源列表,如果這不是你實際做的。 – CommonsWare 2011-06-02 20:00:40

回答

1

我的工作是這樣的xoom it's:

​​

mkdirs(結尾S),因爲一直到最終的路徑,然後失蹤迪爾斯自動創建。

你確定你的AndroidManifest中有這個嗎?

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

嗯,在我嘗試這段代碼後,path.isDirectory()確實返回true。但是,當我瀏覽計算機上的存儲時,該文件夾不顯示。我已嘗試重新啓動xoom,並且該文件夾仍然不顯示,但仍然顯示它在那裏根據path.isDirectory() – Matt 2011-06-03 17:50:04

+0

我最終能夠通過重新啓動Xoom的一些組合後,通過我的電腦看到該文件夾​​,拔掉它並將其重新插入。似乎真正的問題在於其他地方 – Matt 2011-06-03 18:07:40

0

我有我的歌Nexus S同樣的問題,運行的是Android 2.3.4,與STK的代碼玩弄我能夠創建一個文件夾後。

下面是最終代碼:

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

在STK的代碼簡單地更換「/音頻」與「//聲音」,它爲我工作。

您應該在您的AndroidManifest標籤下擁有寫入權限。

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