Phone7,另一个IsolatedStorageFile问题

时间:2011-07-29 15:43:58

标签: windows-phone-7 text isolatedstorage

我想将文本从文本框保存到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。

如果有人给我一些修改代码的提示,真的会非常棒。

提前致谢..

2 个答案:

答案 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”进行了一些检查。我认为主要原因是没有手机来测试代码。

非常感谢你: - )))