Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从独立存储器中读取文本的各行?_C#_Windows Phone 7_Textbox_Isolatedstorage - Fatal编程技术网

C# 如何从独立存储器中读取文本的各行?

C# 如何从独立存储器中读取文本的各行?,c#,windows-phone-7,textbox,isolatedstorage,C#,Windows Phone 7,Textbox,Isolatedstorage,(编辑) 我的代码不读取文本文件。显然的y、 当我想读取文件时,他们给了我一个“未找到文件!”消息框,它位于if-else循环中,表示if循环中的代码不起作用 private void OnSaveFile() { if (!string.IsNullOrEmpty(this.FileName)) { using (var store = IsolatedStorageFile.Get

(编辑)

我的代码不读取文本文件。显然的y、 当我想读取文件时,他们给了我一个“未找到文件!”消息框,它位于if-else循环中,表示if循环中的代码不起作用

        private void OnSaveFile()
        {
            if (!string.IsNullOrEmpty(this.FileName))
            {
                using (var store = IsolatedStorageFile.GetUserStoreForApplication())
                {
                    if (store.FileExists(FileName))
                        store.DeleteFile(FileName);

                    using (var fileStream = store.OpenFile(FileName, FileMode.Create, FileAccess.Write))
                    {
                        using (var writer = new StreamWriter(fileStream))
                        {

                            writer.WriteLine(FileName);
                            writer.WriteLine(FileText1);
                            writer.WriteLine(FileText2);


                        }
                    }
                }
            }
        }

        private void OnReadSelected()
        {
            using (var store = IsolatedStorageFile.GetUserStoreForApplication())
            {
                if (store.FileExists(FileName))
                {
                    using (var fileStream = store.OpenFile(FileName, FileMode.Open, FileAccess.Read))
                    {
                        using (var reader = new StreamReader(fileStream))
                        {
                            FileName = reader.ReadLine();
                            FileText1 = reader.ReadLine();
                            FileText2 = reader.ReadLine();
                        }
                    }
                }
                else
                {
                    MessageBox.Show("File not found!");
                }
            }
        }
CreateTextPage:

 private void Button_Click(object sender, RoutedEventArgs e)
        {
            AddFileModel model = this.LayoutRoot.DataContext as AddFileModel;
            model.SaveFile.Execute(null);
            model.FileName = string.Empty;

            model.FileText1 = string.Empty;
            model.FileText2 = string.Empty;


            MessageBox.Show("File saved successfully");

            NavigationService.Navigate(new Uri("/CompleteQuestionPage.xaml", UriKind.Relative));

        }
ReadFilePage:

private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
    {
        AddFileModel model = this.LayoutRoot.DataContext as AddFileModel;
        model.ReadSelectedFiles.Execute(null);

    }

在OnSaveFile方法中,看起来您正在将数据保存到名为“myfile.txt”的文件中。在OnReadSelected中,您正在使用“文件名”属性打开文件。“文件名”设置为什么?因为如果它没有设置为“myfile.txt”,那么这可能就是您看到“未找到文件”的原因

试着改变

using (var fileStream = store.OpenFile("myfile.txt", FileMode.Create, FileAccess.Write))

还有,改变

using (var reader = new StreamReader(fileStream))

FileName = reader.ReadLine();
FileText1 = reader.ReadLine();
FileText2 = reader.ReadLine();

让你的代码编译

更新:

好的,现在在您的按钮点击处理程序中,您正在执行以下操作:

model.SaveFile.Execute(null);
model.FileName = string.Empty;
您正在将“Filename”的值设置为空字符串;稍后,再次调用OnReadSelected,它使用“Filename”中的值。由于它被设置为空字符串,我认为这就是为什么您会看到“未找到文件”。如果删除该行,会发生什么情况

model.FileName = string.Empty;

??您是否仍然得到“未找到文件”?

您发布的代码甚至不会编译-
reader
将超出第二次
ReadLine
调用的范围,因为未在内部
using
语句中使用大括号。请发布失败的实际代码。@Jon Skeet-对不起,我不明白你的意思。然而,我确实给读者带来了一些错误。他们说,在目前的环境下,读者并不存在。有人告诉我,如果我对齐reader.ReadLine();这样,它将允许在不同的文本框中显示文本,而不是在一个文本框中显示字符串。@Jon Skeet谢谢,我终于知道我缺少什么了。尽管如此,我还是无法读取该文件,因为它仍然向我提供FileNot Found messagebox。但这表明,您之前提供的代码与您首次获得异常时的代码不同。这真的是你的密码吗?如果您使用调试器,可能会引发异常-该异常的详细信息是什么?抱歉,我真的无法继续。我试着为孩子们准备早餐,同时做101件其他事情(否则我早就拿着这个聊天了)。我强烈建议你阅读并重写你的问题,这样你就能清楚地看到你所看到的。。。目前情况并非如此。@E.Z.-顺便说一句,我有一个错误,他们说上下文中不存在reader。谢谢你指出这一点out@lala-请参见上面Jon Skeet的评论-您缺少一组围绕“using(var reader=new StreamReader(fileStream))”的大括号。这就是为什么您会看到“reader不存在”-我仍然会收到“File not Found!”消息框。您如何调用您的方法?我刚刚试着调用“OnSaveFile”和“OnReadSelected”,效果很好。-你介意我给你发送应用程序并帮我检查一下吗?我发誓,这真是一团糟。这是jsut代码的一小部分。现在我真的不知道该找谁。
model.SaveFile.Execute(null);
model.FileName = string.Empty;
model.FileName = string.Empty;