Есть папка, в ней 5 txt файлов, задача софта чтобы он искал строку во всех файлах(пусть показывает файл и строку, которую нашел), пока что у меня получилось только что он читает только 1-й файл, остальные, почему-то нет...как это сделать через File.ReadLines? С начало надо получить все файлы txt из директории потом читать все в поисках строки..
foreach (string lines in Directory.GetFiles(@"C:\Users\Grand\Desktop\folder1\", "*.txt"))//получили все тхт'шники..
{
string filename = File.ReadLines(lines);
а дальше как readlines юзать ? Что то не хочет пахать..
Пускай существует некий "условный" каталог с *.txt файлами, которые не пустые.
string storagePath = "/path/to/file";
var fileStorage = new List<string[]>();
try{
var filePaths = Directory.GetFiles(storagePath, "*.txt")); //string[]
foreach(string path in filePaths){
string[] fileLines = System.IO.File.ReadAllLines(path);
fileStorage.Add(fileLines);
}
foreach(string[] fileLines in fileStorage){
foreach(fileLine in fileLines){
Console.WriteLine(fileLine);
}
Console.WriteLine();
}
} catch (Exception e){
/* todo */
}
Дальше, если Вы хотите делать (если я правильно понял вопрос), то Вы можете его разбить на более мелкие составляющие - слова:
var matchWord = "some_word";
var delimiters = new Char[]{'.', ' ', ';'} //массив разделителей
int i = 1;
foreach(string[] fileLines in fileStorage){
Console.WriteLine("Search in file #" + i++);
foreach(fileLine in fileLines){
var words = fileLine.Split(delimiters);
foreach(word in words){
if(word.Equals(someWord){
return word . " finded!";
}
}
}
}
Да спагетти-код в примере ужасный, но... Вы знаете куда двигаться)
Вам по сути надо:
Простейшая реализация
void FindMatches(string directory, string text)
{
foreach (var file in Directory.GetFiles(directory, "*.*"))
{
foreach (var line in File.ReadLines(file))
{
if (line.Contains(text))
{
Console.WriteLine($"Found match {file} - {line}");
}
}
}
}
Сценарий использования:
FindMatches(@"My Directory", "My Text");
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Я использую SSG, WinForm, NET для DesktopСтолкнулся со следующими проблемами:
Необходимо сделать так, чтобы курсор не мог двигаться за пределы заданной области (допустим, пересечь лэйбл)Написал такой код:
Для чего нужно несколько террейнов ? короче говоря оптимизировать игру, при входе в триггер что бы террейн включался а если вышел то выключался...