Поиск слова в нескольких текстовых файлах - C#
Формулировка задачи:
Здравствуйте.
Есть папка с неизвестным (постоянно меняется) количеством текстовых файлов. Необходимо взять все файлы из этой папки и найти в содержимом этих файлов определенное слово. Слова в файлах имеют разделители в виде пробелов.
Пожалуйста, подскажите что я делаю не так? Я совершенный нуб.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
var dir = @"D:\Programs\data\logs\of"; //Определяем директорию
var contents = Directory.EnumerateFiles(dir, "*.txt") //Говорим с каким расширением читать файлы
.Select(File.ReadAllLines).ToString();
string a = contents;
string b = "Type:15"; //Искомое слово
char[] separators = { ' '}; //Cоздаём массив разделителей
string[] words = a.Split(separators, StringSplitOptions.RemoveEmptyEntries);
Console.WriteLine("Совпадений не найдено!"); //Выводим если совпадений не найдено
foreach (string word in words)
{
if (b.Equals(word))
{
Console.WriteLine("Есть совпадение!"); //Выводим если совпадения найдены
break;
}
}
Console.ReadKey();
}
}
}Решение задачи: «Поиск слова в нескольких текстовых файлах»
textual
Листинг программы
string sourceDirectory = @"D:\Programs\data\logs\of"; //Определяем директорию
foreach (var txtFiles in Directory.EnumerateFiles(sourceDirectory, "*.txt"))
{
Console.WriteLine(txtFiles);
string[] lines = System.IO.File.ReadAllLines(txtFiles);
int i = 0;
string b = "Type:15"; //Искомое слово
foreach (string line in lines)
{
string[] var = lines[i].Split(default(string[]), StringSplitOptions.RemoveEmptyEntries);
i += 1;
foreach (string word in var)
if (b.Equals(word))
{
Console.WriteLine("Есть совпадение!"); //Выводим если совпадения найдены
break;
}
}
}
Console.ReadKey();