我想将文本从文本框保存到internalStorage并从那里加载...
保存部分工作正常。但加载不起作用我已经尝试了很多教程。
private void button2_Click(object sender, RoutedEventArgs e)
{
//get selected FileName from listBox
string selItem = listBox1.SelectedItem.ToString();
IsolatedStorageFile myStore = IsolatedStorageFile.GetUserStoreForApplication();
if (selItem != null)
{
IsolatedStorageFileStream fileStream = store.OpenFile(selItem, FileMode.Open, FileAccess.Read);
using (StreamReader sr = new StreamReader(fileStream))
{
String line = "";
//Debug.WriteLine("ReadLine");
if ((line = sr.ReadLine()) != null)
{
//Debug.WriteLine("ReadLineText");
textBox1.Text = line;
}
sr.Close();
}
fileStream.Close();
}
}
而不是:
if ((line = sr.ReadLine()) != null)
{
//Debug.WriteLine("ReadLineText");
textBox1.Text = line;
我尝试了很多可能性:textBox1.Text = sr.ReadLine();等等..
关于他代码的奇怪之处在于:如果我输入例如:
IsolatedStorageFileStream fileStream = store.OpenFile("text0.txt", FileMode.Open, FileAccess.Read);
它适用于单个文件text0.txt。
如果有人给我一些修改代码的提示,真的会非常棒。
提前致谢..
答案 0 :(得分:1)
这就是我打开ISF流的方式
IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication();
IsolatedStorageFileStream stream = new IsolatedStorageFileStream(filename, FileMode.OpenOrCreate, isf); // loads from isolated storage
答案 1 :(得分:1)
仅供参考:如果您想使用隔离存储,请不要尝试不使用手机进行测试。
这最终对我有用:
private void button2_Click(object sender, RoutedEventArgs e)
{
//get fileName
string filename = listBox1.SelectedItem.ToString();
try
{
IsolatedStorageFileStream stream = new IsolatedStorageFileStream(filename, FileMode.OpenOrCreate, store); // loads from isolated storage
//Debug.WriteLine(stream.CanRead);
StreamReader sr = new StreamReader(stream);
String lines = sr.ReadToEnd().ToString();
if (lines != null)
{
textBox1.Text = lines;
}
stream.Close();
sr.Close();
}
catch (Exception)
{
throw;
}
}
}
也许你看到我杀了使用(..)并对“Null”进行了一些检查。我认为主要原因是没有手机来测试代码。
非常感谢你: - )))