2011-08-26 115 views
1

我和朋友正在嘗試創建一個將文件保存到設備的應用程序。我們使用此代碼寫入外部SD卡,並且在他的Droid X和Samsung Galaxy Tab上效果很好。保存到沒有SD卡的設備

獲取路徑SD卡:

private static final File ROOT = Environment.getExternalStorageDirectory(); 

創建的文件夾路徑和文件:

FileWriter fw = new FileWriter(ROOT + "/test/" + "time_frames.txt"); 

我們使用文檔工廠創建文檔

所以你可以看到我們創建路徑然後嘗試保存到剛創建的路徑

File file = new File(ROOT + "/test/" + "time_frames.txt"); 

當我在Nexus S(沒有SD卡)上運行它時遇到了完全相同的代碼問題。

private static final File ROOTtest = Environment.getExternalStorageDirectory(); 

這個返回/數據

private static final File ROOT = Environment.getRootDirectory(); 

這將返回到/ mnt/SD卡

private static final File intData = Environment.getDataDirectory(); 

這個回報/系統

我的問題是其中之一將用於設備上工作有SD卡和沒有SD卡?我嘗試了很多,但嘗試所有這些東西讓我很困惑。在此先感謝

+0

***更多***我認爲它不工作的原因是由於某種原因,我們沒有正確調用Nexus S上的存儲。這就是爲什麼我正在試驗不同的地點。 – zach

回答

6

Environment.getExternalStorageDirectory()返回到外部存儲的路徑,它應該適用於所有設備。他們是否有實際的SD卡無關緊要,你的代碼也不應該在意。在嘗試使用它之前,您需要確保外部存儲器可用,因爲它可以隨時卸載。

+2

我有同樣的問題,這個答案根本沒有回答這個問題 – AbdelHady

+0

開發者應該如何處理它的狀態? – FlashTek