Windows phone 8 不允许在isolatedstoragefilestream上始终执行操作
关于这个错误有很多问题,但我找不到我面临的问题 我有两个按钮:一个用于将一些字符串保存到isolatedStorage中,另一个用于读取它 当我试图阅读它时,我得到了写在标题中的错误信息 按钮1.点击是:Windows phone 8 不允许在isolatedstoragefilestream上始终执行操作,windows-phone-8,Windows Phone 8,关于这个错误有很多问题,但我找不到我面临的问题 我有两个按钮:一个用于将一些字符串保存到isolatedStorage中,另一个用于读取它 当我试图阅读它时,我得到了写在标题中的错误信息 按钮1.点击是: using (var store = IsolatedStorageFile.GetUserStoreForApplication()) using (var stream = new IsolatedStorageFileStream("kedvencek" + ".
using (var store = IsolatedStorageFile.GetUserStoreForApplication())
using (var stream = new IsolatedStorageFileStream("kedvencek" + ".txt",
System.IO.FileMode.Append,
System.IO.FileAccess.ReadWrite,
store))
{
StreamWriter writer = new StreamWriter(stream);
writer.WriteLine("something");
writer.Close();
stream.Close();
}
和按钮2:
using (var store = IsolatedStorageFile.GetUserStoreForApplication())
using (var stream = new IsolatedStorageFileStream("kedvencek" + ".txt",
System.IO.FileMode.Open,
System.IO.FileAccess.ReadWrite,
store))
{
StreamReader sr = new StreamReader(stream);
string text = sr.ReadToEnd();
MessageBox.Show(text);
sr.Close();
stream.Close();
}
您面临的问题与以下事实有关: FileMode.Append只能与Write一起使用 因此,如果您将其更改为:
using (var stream = new IsolatedStorageFileStream("kedvencek" + ".txt",
FileMode.Append, FileAccess.Write, store))
另一方面,您不需要在使用流时关闭它,在退出使用后,steream将自动释放。而且最好将StreamWriter也投入使用:
有什么区别吗,如果你也在使用中使用StreamWriter和StreamReader?我尝试了几种方法,但仍然得到了错误消息,在一个新项目中,代码有点不同,当我复制到这个项目中时,它再次显示错误消息:S
private void first_Click(object sender, RoutedEventArgs e)
{
using (var store = IsolatedStorageFile.GetUserStoreForApplication())
using (var stream = new IsolatedStorageFileStream("kedvencek" + ".txt", FileMode.Append, FileAccess.Write, store))
using (StreamWriter writer = new StreamWriter(stream))
{
writer.WriteLine("something");
}
}
private void second_Click(object sender, RoutedEventArgs e)
{
using (var store = IsolatedStorageFile.GetUserStoreForApplication())
using (var stream = new IsolatedStorageFileStream("kedvencek" + ".txt", FileMode.Open, FileAccess.ReadWrite, store))
using (StreamReader sr = new StreamReader(stream))
{
string text = sr.ReadToEnd();
MessageBox.Show(text);
}
}