2014-07-10 47 views
0

我試圖在Android應用程序啓動時將某些信息保存在文件中,然後在重新啓動應用程序時檢查該文件是否存在。在Android中保存的文件在重新啓動後被刪除

我使用:

using (Stream stream = OpenFileOutput("userinfo.xml", FileCreationMode.WorldWriteable)) 
{ 
    XmlSerializer xmlSerializer = new XmlSerializer(typeof(User)); 
    xmlSerializer.Serialize(stream, user); 
} 

要保存文件,並:

Java.IO.File test = GetFileStreamPath("userinfo.xml"); 
if (test.Exists()) 
{ 
    //Do something 
} 

要檢查文件是否存在。

這似乎是隨機的。對文件Exists()的檢查在重新啓動後似乎可以正常工作,但在重新啓動應用程序後再次運行幾次後,它不再起作用,就像該文件由於某種原因已被刪除一樣

+0

什麼語言/框架是什麼? – greenapps

+0

Xamarin - 適用於Android的Mono – DualDub

+0

請問您是否可以改編帖子的標題/主題?它會更好地吸引合適的人。 – greenapps

回答

0

首先確保該文件實際上那裏。使用電話文件瀏覽器查看它是否存在。

而且檢查所需的權限是在您的清單

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

openFileOutput將用於內部/私人內存。其他應用程序如文件瀏覽器無法訪問。內部存儲器不需要外部權限。 – greenapps

+0

這是正確的,它保存在內部存儲器中,並在應用程序被刪除/更新時被刪除。當應用程序被刪除/更新時,我的選擇是什麼讓信息能夠存活?我應該使用共享偏好嗎? – DualDub

+0

在刪除應用程序時,保存在內部存儲器中的文件將始終被刪除。將文件保存在系統上的唯一方法是將其作爲** public **文件寫入** external **存儲中。刪除私人文件將被刪除。 – Bart

相關問題