我有20个文件我想将它与master.txt文件逐个比较,如果有任何匹配,程序会给我两个文件之间的匹配总数我尝试使用下面的代码:
using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
namespace ConsoleApplication1
{
class Program
{
static void Main()
{
int found;
int count = 0;
string[] content = File.ReadAllLines(@"C:\master.txt");
string[] mastercontent = File.ReadAllLines(**ineed to pass more than filename** );
foreach (string con in content)
{
if (mastercontent.Contains(con))
{
found = 1;
count = count + found;
}
// else
// {
//Console.WriteLine("no match");
// }
Console.WriteLine(count);
}
}
}
}
我遇到了将多个文件路径传递给File.ReadAllLines()
的问题答案 0 :(得分:1)
试试这个
string[] listOfFiles = {"file1.txt","file2.txt"};
List<string> allLines = new List<string>();
foreach (var path in listOfFiles)
{
allLines.AddRange(File.ReadAllLines(path));
}
//allLines now contains the lines from all files in listOfFiles
或使用字典进行更快速的查找
string[] listOfFiles = {"file1.txt","file2.txt"};
Dictionary<string,string> allLines = new Dictionary<string,string>();
foreach (var path in listOfFiles)
{
foreach (var line in File.ReadAllLines(path))
{
if (!allLines.ContainsKey(line))
{
allLines.Add(line,string.Empty);
}
}
}
答案 1 :(得分:0)
获取您想要阅读的文件名的数组或列表。
我只是向您展示实施的逻辑。您可以以适当的方式对其进行编码。
string[] mastercontent = null;
foreach(string file in filenames)
{
mastercontent += File.ReadAllLines(file);
}
答案 2 :(得分:0)
在外层放置另一个循环或将其解压缩到另一个函数/方法`CompareWithMaster(strign fileName)',你可以将文件名列表传递给它。
你可能想先做一些优化(也许检查文件大小和东西)