C# 隔离存储文件不';无法写入文件
我必须在会话之间存储控件的内容。我就是这么做的:C# 隔离存储文件不';无法写入文件,c#,persistence,isolatedstorage,C#,Persistence,Isolatedstorage,我必须在会话之间存储控件的内容。我就是这么做的: private void Window_Closing(object sender, CancelEventArgs e) { IsolatedStorageFile f = IsolatedStorageFile.GetUserStoreForAssembly(); using(IsolatedStorageFileStream stream = new IsolatedStorageFileSt
private void Window_Closing(object sender, CancelEventArgs e)
{
IsolatedStorageFile f = IsolatedStorageFile.GetUserStoreForAssembly();
using(IsolatedStorageFileStream stream = new IsolatedStorageFileStream("somefilename", FileMode.Create, f))
using(StreamWriter writer = new StreamWriter(stream))
{
foreach(string path in searchFoldersListView.Items)
{
writer.WriteLine(path);
}
}
}
这将附加到窗口的关闭事件。调试时,该控件将遍历所有项,但当我再次运行该程序时,该控件为空。结果是,当我导航到该文件时,它是空的。当我通过在foreach循环中放入file.AppendAllText()
将代码更改为保存到常规文件时,该文件保存得很好。为什么呢
编辑:正在读取事件处理程序:
private void Window_Initialized(object sender, EventArgs e)
{
IsolatedStorageFile f = IsolatedStorageFile.GetUserStoreForAssembly();
using(IsolatedStorageFileStream stream = new IsolatedStorageFileStream("somefilename", FileMode.OpenOrCreate, f))
using(StreamReader reader = new StreamReader(stream))
{
string line = reader.ReadLine();
while(line != null)
{
searchFoldersListView.Items.Add(line);
}
}
}
您的方法中有一个从文件读取的错误。您只读取第一行,可能是null
。请尝试以下操作:
using(StreamReader reader = new StreamReader(stream))
{
string line = reader.ReadLine();
while(line != null)
{
searchFoldersListView.Items.Add(line);
line = reader.ReadLine();
}
}
你真的写了读取文件的代码吗?你为什么不发布它?IsolatedStorageFile
也是IDisposable
。尝试使用
语句将其放入中。@HansPassant我没有发现这一点很重要,因为我通过导航到它来验证文件是否为空。不管怎么说。