PCL Storage第二次尝试读取文件时抛出错误

时间:2017-09-15 16:34:40

标签: c# xamarin xamarin.android

我对Xamarin来说是全新的,并且仍在学习绳索,所以请耐心等待。我正在使用PCLStorage库(https://github.com/dsplaisted/pclstorage)来读取和写入json文件。

我已经在我的PCL中设置了静态类,以便我可以从本机代码中调用它们(不确定这是否是最好的方法,见下文)。传入的rootFolder是FileSystem.Current.LocalStorage。

public static async Task<string> ReadFileContent(string fileName, IFolder rootFolder)
{
    IFile file = null;
    string text = null;

    var files = await rootFolder.GetFilesAsync();
    file = files.FirstOrDefault(f => f.Name == fileName);


    if (file != null)
    {
        try
        {
            text = await file.ReadAllTextAsync();
        }
        catch (Exception exception)
        {
            var x = exception.Message;
        }

    }

    return text;
}



public static async Task WriteFileContent(string fileName, IFolder rootFolder, string content)
        {
            ExistenceCheckResult exist = await rootFolder.CheckExistsAsync(fileName);

            if (exist == ExistenceCheckResult.FileExists)
            {
                IFile file = await rootFolder.GetFileAsync(fileName);
                await file.WriteAllTextAsync(content);
            }
            else
            {
                IFile file = await rootFolder.CreateFileAsync(fileName, CreationCollisionOption.ReplaceExisting);
                await file.WriteAllTextAsync(content);
            }
        }

当我第一次运行Android应用时,这非常有效。它多次读取文件,每件事都有效。但是后来我开启了一个将用户带到网页的意图。当用户被定向回应用程序到另一个活动时,它将停止工作。 “await rootFolder.GetFilesAsync();”抛出一个未处理的异常,没有更多的信息。

恢复应用程序时是否有一些我缺失的东西?

提前致谢。

0 个答案:

没有答案