2014-02-24 71 views
0

我目前正在從服務器下載圖像並將其保存到Android設備。德爾福5 - XE5 - 保存圖片到的Nexus 7設備

這一切正常。我遇到的問題是該文件只在應用程序運行時才保存到設備上,我想。該文件被下載並保存到設備上的文件中,我可以從文件加載到TImage中,但是當應用程序終止時,圖像似乎被刪除。

下一次

有沒有人知道爲什麼文件被刪除?

我使用GetHomePath獲取本地路徑。

我一直在使用System.IOUtils.TPath.GetDocumentsPath獲取本地路徑也試過。

該文件夾可能是臨時文件夾嗎?

無論如何,我想永久保存圖像,或直到應用程序被刪除,或有需要下載服務器上的新形象。

在此先感謝。

Shane

+0

行什麼您使用的是將文件保存到您永久可見的目錄? – Sentient

+0

@ Sentient' fIDHTTP:= TIDHTTP.Create; Stream:= TMemoryStream.Create; 嘗試 嘗試 如果FILEEXISTS(aDestFileName)然後 的DeleteFile(PWideChar(aDestFileName)); fIDHTTP.Get(aSourceURL,Stream); Stream.SaveToFile(aDestFileName); 結果:= TRUE; ' – Shane

+0

我會堅持使用TPath.GetDocumentsPath,我相信這是存儲的目的。另外,在XE5中,每次從IDE運行應用程序時,似乎都會卸載舊版本並清除所有數據。如果您只是關閉並重新啓動設備上的應用程序,文件是否存在? – Sentient

回答

2

Nexus已緊密保護文件系統。您只能訪問特定應用程序打開時由某個應用程序保存的文件。

使用可以使用這個methos來存儲它

Environment.getExternalStorageDirectory(). 
+1

這是我正在尋找的鏈接。 謝謝你。 http://chuacw.ath.cx/blogs/chuacw/archive/2013/09/26/getting-the-files-directory-on-android-with-delphi-xe5.aspx – Shane