写入内部存储 - 找不到文件

时间:2013-04-23 18:14:20

标签: android file xamarin.android data-storage

我已经阅读了大量有关写入Android设备内部存储的文章,我需要一些帮助来弄清楚我做错了什么。在我的应用程序的主要活动中,我从存储在内部存储器中的文件中读取了一个值,如下所示:

string ID = GetID();

GetID的位置如下:

string GetID()
    {
        try 
        {
            using (var i = new StreamReader (OpenFileInput (FILENAME))) 
            {
                return i.ReadToEnd();
            }
        }   
        catch 
        {
            return "";
        }
    }

如果文件不存在,则返回“”并将用户发送到另一个活动进行注册。在该活动中,我使用它来调用函数来写入内部存储,如下所示:

WriteID (uniqueID);

WriteID的位置如下:

void WriteID(string uniqueID)
    {
        using (var o = new StreamWriter (
            OpenFileOutput (FILENAME, FileCreationMode.Private)))
            o.Write (uniqueID);
    }

这对我来说很奇怪,如果我将这两个函数放在同一个活动中,写入文件然后调用函数来读取它,我会正确返回uniqueID。但是,如果我停止应用程序然后重新启动它,我会抛出一个File Not Found异常,并且读取函数没有返回任何内容。但是,如果我创建一个新项目并使用相同的代码,一切都按预期工作(文件被创建并写入,然后在重新启动数据时仍然存在)。

所以我想我有一些设置已经更改,或者我的原始应用程序中可能缺少某些引用,导致在应用程序停止时删除内部存储文件?

为什么这在我的测试应用中正常工作的想法,而不是在另一个?

0 个答案:

没有答案