Напишите утилиту которая ищет файлы определенного расширения с указанным текстом. Рекурсивно. Пример вызова утилиты: utility.exe txt текст. На языке C#.
csharp
static void Main(string[] args)
{
// Проверка, что переданы необходимые аргументы
if (args.Length < 3)
{
Console.WriteLine("Недостаточно аргументов для запуска утилиты");
return;
}
// Первый аргумент - это путь к исполняемому файлу программы, поэтому его можно игнорировать
string extension = args[1]; // расширение файла
string searchText = args[2]; // текст для поиска
// Остальная часть кода
// ...
}
Шаг 2: Получение списка файлов
Для этого можно использовать класс `System.IO.Directory`, а именно метод `GetFiles()`. Данный метод возвращает массив строк, где каждая строка представляет полный путь к файлу.
Пример получения списка файлов в указанной директории и ее поддиректориях:
csharp
// Получение списка файлов в указанной директории и ее поддиректориях
string[] files = Directory.GetFiles(directoryPath, "*.*", SearchOption.AllDirectories);
Шаг 3: Поиск текста в файлах
Для этого можно использовать класс `System.IO.File`, а именно метод `ReadAllText()`. Данный метод возвращает строку, содержащую все содержимое указанного файла.
Пример поиска текста в файле:
csharp
// Проверка, содержит ли файл указанный текст
string fileContent = File.ReadAllText(filePath);
if (fileContent.Contains(searchText))
{
// Файл содержит указанный текст
Console.WriteLine(filePath);
}
Шаг 4: Вывод полного пути к файлу на консоль
Для этого достаточно использовать метод `Console.WriteLine()`, передав в него полный путь к файлу.
Пример вывода полного пути к файлу на консоль:
csharp
Console.WriteLine(filePath);
Полный пример кода утилиты:
csharp
using System;
using System.IO;
class Program
{
static void Main(string[] args)
{
// Проверка, что переданы необходимые аргументы
if (args.Length < 3)
{
Console.WriteLine("Недостаточно аргументов для запуска утилиты");
return;
}
// Первый аргумент - это путь к исполняемому файлу программы, поэтому его можно игнорировать
string extension = args[1]; // расширение файла
string searchText = args[2]; // текст для поиска
// Получение списка файлов в указанной директории и ее поддиректориях
string[] files = Directory.GetFiles(".", "*." + extension, SearchOption.AllDirectories);
// Итерация по списку файлов и поиск текста
foreach (string file in files)
{
// Проверка, содержит ли файл указанный текст
string fileContent = File.ReadAllText(file);
if (fileContent.Contains(searchText))
{
// Файл содержит указанный текст
Console.WriteLine(file);
}
}
}
}
Пример использования утилиты:
utility.exe txt текст
Данная утилита будет искать все файлы с расширением "txt" и выводить на консоль полные пути к файлам, содержащих текст "текст".Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет