Windows Phone C#-从文本文件加载

Windows Phone C#-从文本文件加载,c#,windows-phone,isolatedstorage,isolatedstoragefile,C#,Windows Phone,Isolatedstorage,Isolatedstoragefile,我让我的程序使用IsolatedStorageFile将4个不同文本框的内容保存到4个单独的文本文件中。这很好,直到我以后必须加载它们。加载时,所有4个文本文件都加载到第一个文本框中,其余3个文本框留空 以下是我用来保存文件的代码: private void Button_Click_2(object sender, RoutedEventArgs e) { defaultPicker.ItemsSource = new List<string>() { {

我让我的程序使用IsolatedStorageFile将4个不同文本框的内容保存到4个单独的文本文件中。这很好,直到我以后必须加载它们。加载时,所有4个文本文件都加载到第一个文本框中,其余3个文本框留空

以下是我用来保存文件的代码:

private void Button_Click_2(object sender, RoutedEventArgs e)
    {
        defaultPicker.ItemsSource = new List<string>() { { box1.Text },   { box2.Text }, { box3.Text }, { box4.Text } };

        //Deletes any previous saved files

        IsolatedStorageFile storage = IsolatedStorageFile.GetUserStoreForApplication();
        storage.DeleteFile("ip-1.txt");
        storage.DeleteFile("ip-2.txt");
        storage.DeleteFile("ip-3.txt");
        storage.DeleteFile("ip-4.txt");

        // This saves users IP's into text files for later loading


        IsolatedStorageFile fileStorage = IsolatedStorageFile.GetUserStoreForApplication();
        StreamWriter Writer = new StreamWriter(new IsolatedStorageFileStream("ip-1.txt", FileMode.OpenOrCreate, fileStorage));
        Writer.WriteLine(box1.Text);

        new StreamWriter(new IsolatedStorageFileStream("ip-2.txt", FileMode.OpenOrCreate, fileStorage));
        Writer.WriteLine(box2.Text);

        new StreamWriter(new IsolatedStorageFileStream("ip-3.txt", FileMode.OpenOrCreate, fileStorage));
        Writer.WriteLine(box3.Text);

        new StreamWriter(new IsolatedStorageFileStream("ip-4.txt", FileMode.OpenOrCreate, fileStorage));
       Writer.WriteLine(box4.Text);

        Writer.Close();



    }
private void按钮\u单击\u 2(对象发送者,路由目标)
{
defaultPicker.ItemsSource=new List(){{box1.Text}、{box2.Text}、{box3.Text}、{box4.Text};
//删除以前保存的所有文件
IsolatedStorageFile存储=IsolatedStorageFile.GetUserStoreForApplication();
storage.DeleteFile(“ip-1.txt”);
storage.DeleteFile(“ip-2.txt”);
storage.DeleteFile(“ip-3.txt”);
storage.DeleteFile(“ip-4.txt”);
//这会将用户的IP保存到文本文件中,以便以后加载
IsolatedStorageFile fileStorage=IsolatedStorageFile.GetUserStoreForApplication();
StreamWriter Writer=newstreamwriter(新的隔离存储文件流(“ip-1.txt”,FileMode.OpenOrCreate,fileStorage));
Writer.WriteLine(框1.Text);
新的StreamWriter(新的隔离存储文件流(“ip-2.txt”,FileMode.OpenOrCreate,fileStorage));
Writer.WriteLine(框2.Text);
新的StreamWriter(新的隔离存储文件流(“ip-3.txt”,FileMode.OpenOrCreate,fileStorage));
Writer.WriteLine(框3.Text);
新的StreamWriter(新的隔离存储文件流(“ip-4.txt”,FileMode.OpenOrCreate,fileStorage));
Writer.WriteLine(第4框文本);
Writer.Close();
}
要在以后加载文件,请执行以下操作:

    private void Button_Click_4(object sender, RoutedEventArgs e)
    {

        // Loads IP's from text file or displays error message

        //First clear the boxes...

        box1.Text = "";
        box2.Text = "";
        box3.Text = "";
        box4.Text = "";

        //Load from text files...

        IsolatedStorageFile fileStorage = IsolatedStorageFile.GetUserStoreForApplication();
        StreamReader Reader = null;
        try
        {
            Reader = new StreamReader(new IsolatedStorageFileStream("ip-1.txt", FileMode.Open, fileStorage));
            string textFile = Reader.ReadToEnd();
            box1.Text = textFile;

        }
        catch
        {
        }



        IsolatedStorageFile.GetUserStoreForApplication();           
        try
        {
            Reader = new StreamReader(new IsolatedStorageFileStream("ip-2.txt", FileMode.Open, fileStorage));
            string textFile2 = Reader.ReadToEnd();
            box2.Text = textFile2;

        }
        catch
        {
        }



        IsolatedStorageFile.GetUserStoreForApplication();
        try
        {
            Reader = new StreamReader(new IsolatedStorageFileStream("ip-3.txt", FileMode.Open, fileStorage));
            string textFile3 = Reader.ReadToEnd();
            box3.Text = textFile3;

        }
        catch
        {
        }



        IsolatedStorageFile.GetUserStoreForApplication();
        try
        {
            Reader = new StreamReader(new IsolatedStorageFileStream("ip-4.txt", FileMode.Open, fileStorage));
            string textFile4 = Reader.ReadToEnd();
            box4.Text = textFile4;
            Reader.Close();

        }
        catch
        {
        }

        // To sync with ListPicker
        defaultPicker.ItemsSource = new List<string>() { { box1.Text },   { box2.Text }, { box3.Text }, { box4.Text } };
    }
private void按钮\u单击\u 4(对象发送者,路由目标)
{
//从文本文件加载IP或显示错误消息
//首先清理箱子。。。
框1.Text=“”;
框2.Text=“”;
框3.Text=“”;
框4.Text=“”;
//从文本文件加载。。。
IsolatedStorageFile fileStorage=IsolatedStorageFile.GetUserStoreForApplication();
StreamReader=null;
尝试
{
Reader=新的StreamReader(新的隔离存储文件流(“ip-1.txt”,FileMode.Open,fileStorage));
string textFile=Reader.ReadToEnd();
box1.Text=textFile;
}
抓住
{
}
IsolatedStorageFile.GetUserStoreForApplication();
尝试
{
Reader=新的StreamReader(新的隔离存储文件流(“ip-2.txt”,FileMode.Open,fileStorage));
字符串textFile2=Reader.ReadToEnd();
box2.Text=textFile2;
}
抓住
{
}
IsolatedStorageFile.GetUserStoreForApplication();
尝试
{
Reader=新的StreamReader(新的隔离存储文件流(“ip-3.txt”,FileMode.Open,fileStorage));
字符串textFile3=Reader.ReadToEnd();
box3.Text=textFile3;
}
抓住
{
}
IsolatedStorageFile.GetUserStoreForApplication();
尝试
{
Reader=新的StreamReader(新的隔离存储文件流(“ip-4.txt”,FileMode.Open,fileStorage));
字符串textFile4=Reader.ReadToEnd();
box4.Text=textFile4;
Reader.Close();
}
抓住
{
}
//与ListPicker同步
defaultPicker.ItemsSource=new List(){{box1.Text}、{box2.Text}、{box3.Text}、{box4.Text};
}

如果您能帮我找到正确的方向,我们将不胜感激。

首先,我建议您停止吃任何食物。至少在调试模式下,在pragma中有空的catch块

我将删除Reader的单个声明,并为每个文件创建一个新的声明:

try
{
    using (StreamReader reader = new StreamReader(new IsolatedStorageFileStream("ip-1.txt", FileMode.Open, fileStorage))) 
    {
        string textFile = reader.ReadToEnd();
        box1.Text = textFile;
    }
}

您没有正确写入这四个文件。每次都需要重新分配
编写器

    StreamWriter Writer = new StreamWriter(new IsolatedStorageFileStream("ip-1.txt", FileMode.OpenOrCreate, fileStorage));
    Writer.WriteLine(box1.Text);

    Writer = new StreamWriter(new IsolatedStorageFileStream("ip-2.txt", FileMode.OpenOrCreate, fileStorage));
    Writer.WriteLine(box2.Text);

    Writer = new StreamWriter(new IsolatedStorageFileStream("ip-3.txt", FileMode.OpenOrCreate, fileStorage));
    Writer.WriteLine(box3.Text);

    Writer = new StreamWriter(new IsolatedStorageFileStream("ip-4.txt", FileMode.OpenOrCreate, fileStorage));
   Writer.WriteLine(box4.Text);

    Writer.Close();

将来,在catch块中应该有一些内容来显示捕获到的异常。在这种情况下,它会告诉您,其他三个文件无法加载,因为它们不存在。

您是否查看了文本文件并验证了内容是否符合预期?您应该在catch块中至少添加一个messagebox,以便查看其他三个文件是否只是出错。你确定这四个文件都被创建了吗?谢谢你的帮助和建议。