Поиск слова в нескольких текстовых файлах - 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();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д