循环中无法正确显示内容

时间:2019-03-07 12:22:55

标签: c# visual-studio

我已经编写了一个c#代码来检索所有文件名,然后在其中打印其中一个信息。示例文件包含(file1.mht,file2.mht,file3.mht)。也许其中的包含是(aaaaaa,bbbbbb,cccccc)遵循文件的顺序。 示例输出: file1.mht aaaaaa file2.mht bbbbbb file3.mht cccccc

但是我遇到的问题是它无法循环显示文件内容。有人可以帮忙吗?当前结果是它首先显示所有目录,并且仅完成目录中第一个目录的工作。

using HtmlAgilityPack;
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Configuration;
using System.Collections.Specialized;

namespace ConsoleApp3
{
    class Program
    {
        static void Main(string[] args)
        {
            DirectoryInfo mht_file = new DirectoryInfo(@"C:\Users\liewm\Desktop\SampleTest\");
            FileInfo[] Files = mht_file.GetFiles("*.mht");
            string str = "";
            string mht_text = "";
            string directory = "";
            string listInfo = "";

            foreach (FileInfo file in Files)
            {
                str = file.Name;
                directory = mht_file + str;
                Console.WriteLine(directory);
            }
            foreach (char filePath in directory)
            {
               //Here is my work to retrieve the data in the file

                Console.WriteLine("Names:" + str + "    " + "Component:" + component);
                Console.ReadKey();
            }


        }


    }

}

3 个答案:

答案 0 :(得分:1)

根据您的问题,我了解到您要打印文件名,然后打印相同的内容,如果可以的话,您可以尝试:

DirectoryInfo mht_file = new DirectoryInfo(@"C:\Users\liewm\Desktop\SampleTest\");
FileInfo[] Files = mht_file.GetFiles("*.mht");

foreach (FileInfo file in Files)
{
    // read the content of the file
    var content = File.ReadAllText(file.FullName);

    // from your question "Example out output: file1.mht aaaaaa"
    Console.WriteLine($"{file.Name} {content}");
}

答案 1 :(得分:0)

  

仅完成目录中最后一个的工作。

是的,这是因为您的目录变量是字符串string directory = "",它将被循环迭代的最后一个值覆盖。您宁愿要存储在string[]中,也不愿处理所有这些内容。

foreach (FileInfo file in Files)
{
  str = file.Name;
  directory = mht_file + str;
  Console.WriteLine(directory);
}

答案 2 :(得分:0)

请尝试这个。

  foreach (FileInfo file in Files)
            {
                str = file.Name;
                directory += mht_file + str;
                Console.WriteLine(directory);
            }