C# 点击按钮读取多个文本文件并显示内容

C# 点击按钮读取多个文本文件并显示内容,c#,asp.net,vb.net,C#,Asp.net,Vb.net,我最初有一个文件上传工具来上传一个文本文件,操纵它的内容并显示到一个列表框或文本框中。但是,限制是Fileupload只支持单次上传,至少支持我正在使用的.Net Framework版本 我打算做的只是使用一个按钮控件并删除Fileupload。单击按钮后,我需要读取指定文件夹路径中的文本文件,并首先显示多行文本框中的内容。(不仅仅是文件名)这是我最初编写的代码,它不起作用 protected void btnGetFiles_Click(object sender, EventArgs

我最初有一个文件上传工具来上传一个文本文件,操纵它的内容并显示到一个列表框或文本框中。但是,限制是Fileupload只支持单次上传,至少支持我正在使用的.Net Framework版本

我打算做的只是使用一个按钮控件并删除Fileupload。单击按钮后,我需要读取指定文件夹路径中的文本文件,并首先显示多行文本框中的内容。(不仅仅是文件名)这是我最初编写的代码,它不起作用

   protected void btnGetFiles_Click(object sender, EventArgs e)
        {
            string content = string.Empty;
            DirectoryInfo dinfo = new DirectoryInfo(@"C:\samplePath");
            FileInfo[] Files = dinfo.GetFiles("*.txt");



            foreach (FileInfo file in Files)
            {
                //ListBox1.Items.Add(file.Name);
                content += content;

            }
            txtContent.Text = content;


        }

您编写了
content+=content,这就是问题所在。将其更改为
content+=file.Name,它会工作。

由于您的应用程序是基于web的应用程序,因此您无法访问物理路径,如
c:\\..
无论如何,您应该使用Server.MapPath(根据注释,您不需要使用Server.MapPath获取文件)。然后,为了获取内容,您可以尝试以下方法:

  protected void btnGetFiles_Click(object sender, EventArgs e)
  {
      try
      {
          StringBuilder content = new StringBuilder();
          if (Directory.Exists(@"C:\samplePath"))
          { 
              // Execute this if the directory exists
              foreach (string file in Directory.GetFiles(@"C:\samplePath","*.txt"))
              {
                   // Iterates through the files of type txt in the directories
                  content.Append(File.ReadAllText(file)); // gives you the conent
              }
                txtContent.Text = content.ToString();
          }
      }
      catch
      {
          txtContent.Text = "Something went wrong";
      }

  }

仍然没有输出,先生。对于cofusion,很抱歉,您在那里是正确的,但是它显示了文件名,如何显示每个文件的内容。关于如何从.txt文件中读取文本,有一个非常好的示例。非常感谢您的参考。仅供参考,.NET framework与上载的多个文件无关。这是工作中的纯客户端/IIS。要了解如何允许多个文件上载,请查看因为我在某个地方看到,Fileupload工具在最新版本中可以具有多个上传功能。谢谢你的更正,先生,这个应用程序现在是本地使用的,所以如果我使用的是绝对路径的话就可以了。当前代码实际上可以找到路径唯一的问题是文件的内容没有被读取。只有文件名。当我尝试代码时,预期我遇到了一个错误,即必须对虚拟路径进行编码。@rickyProgrammer:确定,然后继续执行
服务器.MapPath(“此处的相对路径”)
“C:\samplePath”
,并检查它是否工作;查看更新的代码谢谢如果我希望它显示在gridview中怎么办?您可以将内容放入列表或数据表中,然后将网格与该集合绑定