C# 如何打开文件并在文本块c中显示它#

C# 如何打开文件并在文本块c中显示它#,c#,C#,因此,我基本上只是从c#开始,我只是尝试从.txt文件中获取文本,并将其显示在我的应用程序上。我试着寻找我能想到的任何地方,但我只发现有人在控制台应用程序中这样做,当我尝试将相同的解决方案应用到我的应用程序时,只会出现错误。这就是我目前正在尝试使用的,但我一直得到错误:“无法将StreamReader(path)之后的路径的‘string’转换为‘System.IO.Stream’”。我试着把它作为一个控制台应用程序(更改输出代码),效果很好 namespace FileOpenApp {

因此,我基本上只是从c#开始,我只是尝试从.txt文件中获取文本,并将其显示在我的应用程序上。我试着寻找我能想到的任何地方,但我只发现有人在控制台应用程序中这样做,当我尝试将相同的解决方案应用到我的应用程序时,只会出现错误。这就是我目前正在尝试使用的,但我一直得到错误:“无法将StreamReader(path)之后的路径的‘string’转换为‘System.IO.Stream’”。我试着把它作为一个控制台应用程序(更改输出代码),效果很好

namespace FileOpenApp
{
   public sealed partial class MainPage : Page
   {
   public MainPage()
   {
       this.InitializeComponent();
   }
   private void inputSubmitButton_Click(object sender, RoutedEventArgs e)
       {
           outputBox.Text = "Testing";
           processFile();
       }
   private void processFile()
   {
       try
       {
           string path = @"C:\Users\Fabian\Dropbox\test.txt";
           using (StreamReader sr = new StreamReader(path)) //errors here
           {
               string line;
               while ((line = sr.ReadLine()) != null)
               {
                   outputBox.Text = line;
                   currentProcess.Text = "Done";
               }
           }
       }
       catch (Exception e)
       {
           currentProcess.Text = "Something went wrong";
       }
     }
   }
}
编辑:尝试使用此代码时,我得到一个错误,即名称空间System.IO中不存在该文件

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using System.Text;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;


namespace FileOpenApp
{
    public sealed partial class MainPage : Page
    {
        public MainPage()
        {
            this.InitializeComponent();
        }
        private void inputSubmitButton_Click(object sender, RoutedEventArgs e)
            {
                outputBox.Text = "Testing";
                processFile();
            }
        private void processFile()
        {
            string path = @"C:\Users\Fabian\Dropbox\test.txt";
            string contents = "";
            System.IO.File.ReadAllText(path, contents);
            outputBox.Text = contents;
        }
    }
}
也试过了,

string path = @"C:\Users\Fabian\Dropbox\test.txt";
outputBox.Text = File.ReadAllText(path);

您应该调用
File.ReadAllText()
,它为您完成所有这些并返回一个字符串。

StreamReader
确实有一个接受文件路径的构造函数:非常奇怪。我用你的代码做了我自己的程序,但是有一个适合我的计算机的路径,它运行得很好。您应该将“outputBox.Text=line;”行更改为“outputBox.Text+=line;”,这样它将显示文件的所有行,并在读取文件之前放置一行以清除该文本框,以便多次单击不会重复将同一文件添加到框中。但除此之外,它应该是有效的。正如我所提到的,它在我的计算机上的工作方式几乎与您发布的完全相同。@WDS是的,整理它的显示方式和我稍后将要排序的内容,只是希望它首先实际工作。谢谢,我想这意味着我的Visual Studio安装可能有问题?我用的是2015年,只是和我的win 10新安装一起安装。我还在用2013年。我看到一些人评论说,他们的2015在使用相同代码时的表现与以前版本的VS不同。很难说这里的情况是否如此。我也无法复制您的“命名空间System.IO中不存在文件”异常。我确实认为您的安装或2015总体上可能有问题。在这一点上,我建议您尝试安装2013,如果您可以得到它,并看看这是否解决了问题。原始代码应该打开该文件-但它有一个缺陷,因为它实际上只加载最后一行文本。这个解决方案很好地避免了这个bug。对,我以前确实尝试过使用类似的东西,在再次尝试之后,它表示代码
System.IO.File.writealText(path)的“File不存在于System.IO的命名空间中”如果我删除System.IO,它只会说这个文件不存在context@SLaksErrrr我不知道你说的tbh是什么意思,上面的代码是在一个C#文件中,还有一个XAML文件用于UI,但除了我使用Visual Studio作为IDE之外,我在启动项目时只选择了空白应用程序作为模板。这应该可以做到,您是否可以使用SLaks解决方案显示完整的代码?@Angloos我用SLaks解决方案中的完整代码更新了OP(不包括XAML代码,但我认为这不是问题所在)