2016-05-13 51 views
2

我試圖將一些屏幕轉儲保存到內部存儲以進行調試,但似乎無法訪問它們。當我打電話FileSystemStorage.getInstance()getAppHomePath(),我得到的是看起來像這樣的路徑:將文件保存在CodenameOne中

/data/data/com.mycompany.myapp/files/

但我不能看此文件夾在Android文件傳輸工具中,所以我無法將文件拖到我的Mac。我也嘗試使用Message類將它們附加到電子郵件中,但由於某些原因,附件從未出現。我注意到有很多的應用程序文件夾中存儲數據是這樣的:

/Android/data/com.doubletwist.androidplayer/ 

如果我試圖創建這樣一個文件夾,我遇到兩個問題。首先,它不是平臺獨立的。 (這並不重要,因爲我只是爲了調試而做這件事。)其次,它不起作用。我得到一個錯誤告訴我,我需要使用由FileSystemStorage.getInstance()返回的目錄。getAppHomePath()

有沒有什麼辦法可以將文件保存到一個文件夾,我實際上可以檢索它們?如果我有一個平臺無關的方式,那將會更有幫助,但現在任何方法都行得通。

回答

0

文件系統是一個非常「不可移植」的概念。默認情況下,應用程序主頁是一個私人文件夾,其中包括Android 4+在內的一些移動操作系統保持私密且無法訪問

Android有一個「sdcard」的概念,它曾經是一個物理存儲器,您可以在任何目錄中寫入任何內容而沒有問題。這不再適用於更高版本的Android,但您可以從SD卡目錄讀取並檢測它。

FileSystemStorage有一個API來獲取根和它們的類型,如果你有一個SD卡類型,你可以從那裏讀取。您可以使用FileTree來查看暴露給您的應用程序的文件層次結構,這對調試很有用。

+0

謝謝澄清。這聽起來像我只能寫入一個沒有人能看到的單一目錄。不過,其他Android應用程序仍可以寫入/ Android/data/ /路徑中的目錄。這將是非常好的。事實上,我甚至無法使用我的郵件程序來附加我創建的文件,因爲它無法看到它們。我並不熟悉其他平臺,但CodenameOne提供了創建/返回其他人可以看到的用戶目錄的方法,這將非常有用。 – MiguelMunoz

+0

這不是我所說的看到「SD卡」段落。 –

+0

也許我們是在誤解對方。 「SD卡」段告訴我,我不能寫入SD卡。我要附加的文件是我創建的文件,因此我只能將它們保存到我的郵件程序無法看到的目錄中。 – MiguelMunoz