我已经编写了一个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();
}
}
}
}
答案 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);
}