Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# PCL存储在我第二次尝试读取文件时引发错误_C#_Xamarin_Xamarin.android - Fatal编程技术网

C# PCL存储在我第二次尝试读取文件时引发错误

C# PCL存储在我第二次尝试读取文件时引发错误,c#,xamarin,xamarin.android,C#,Xamarin,Xamarin.android,我是Xamarin的新手,还在学习诀窍,所以请耐心听我说。我正在使用PCLStorage库()读写json文件 我已经在我的PCL中设置了静态类,以便可以从本机代码调用它们(不确定这是否是最好的方法,请参见下文)。传入的根文件夹是FileSystem.Current.LocalStorage public static async Task<string> ReadFileContent(string fileName, IFolder rootFolder) { IFile

我是Xamarin的新手,还在学习诀窍,所以请耐心听我说。我正在使用PCLStorage库()读写json文件

我已经在我的PCL中设置了静态类,以便可以从本机代码调用它们(不确定这是否是最好的方法,请参见下文)。传入的根文件夹是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);
            }
        }
公共静态异步任务ReadFileContent(字符串文件名,IFolder rootFolder)
{
IFile file=null;
字符串文本=空;
var files=await rootFolder.getfileasync();
file=files.FirstOrDefault(f=>f.Name==fileName);
如果(文件!=null)
{
尝试
{
text=wait file.ReadAllTextAsync();
}
捕获(异常)
{
var x=异常消息;
}
}
返回文本;
}
公共静态异步任务WriteFileContent(字符串文件名、IFolder根文件夹、字符串内容)
{
ExistenceCheckResult exist=wait rootFolder.CheckExistsAsync(文件名);
if(exist==ExistenceCheckResult.FileExists)
{
IFile file=wait rootFolder.GetFileAsync(文件名);
wait file.WriteAllTextAsync(内容);
}
其他的
{
IFile file=wait rootFolder.CreateFileAsync(文件名,CreationCollisionOption.ReplaceExisting);
wait file.WriteAllTextAsync(内容);
}
}
当我第一次运行安卓应用程序时,这个功能非常有效。它多次读取文件,每件事都能正常工作。然而,后来我激发了一个意图,将用户带到一个网页。当用户被引导回应用程序进行其他活动时,它将停止工作。“await rootFolder.getfileasync();”抛出一个未处理的异常,除此之外没有其他信息

在恢复应用程序时是否缺少某些内容


提前感谢。

如果您得到一个未处理的异常,您应该尝试做的第一件事是添加一个try/catch(或使用调试器)来获取实际的异常。如果您尝试过,它甚至会在try块内进入中断模式,由于某种原因,异常没有被捕获……您确定这段代码有问题吗?“但是后来我触发了一个意图,它会将用户带到一个网页。当用户被引导回到应用程序的另一个活动时,它会停止工作。”,听起来你的问题在于不同意图之间的交易。嗨,Grace,是的,我认为你可能是对的,但是当用户返回时,只要OnCreate方法在正确的活动中运行,那么意图就是有效的。就在这个图书馆被命名的时候,它似乎坏了。也许我在处理意图时遗漏了什么。