Windows Phone C#-从文本文件加载
我让我的程序使用IsolatedStorageFile将4个不同文本框的内容保存到4个单独的文本文件中。这很好,直到我以后必须加载它们。加载时,所有4个文本文件都加载到第一个文本框中,其余3个文本框留空 以下是我用来保存文件的代码: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>() { {
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,以便查看其他三个文件是否只是出错。你确定这四个文件都被创建了吗?谢谢你的帮助和建议。