Программа на C# для поиска текста внутри файлов

Хочу поделиться с вами своим примером программы для поиска текста внутри вордовских документов. Такая необходимость у меня возникла на работе, так как Windows отказался искать текст внутри документов в расшаренных по сети папках, и поэтому я решил что было бы интересно сделать это самому. В итоге появилось такое консольное приложение, где можно в консоль перенести папку с документами (docx, xlsx, txt), обозначить слово для поиска и программа выдаст все документы где это слово встречается. Вот как это выглядит:

Программа на C# для поиска текста внутри файлов Программирование, Microsoft Word, Csharp

Сложность поиска внутри документов docx и xlsx по сравнению с обычными текстовыми файлами заключается в том, что это zip архивы и для того чтобы искать текст в документе его сначала нужно разархивировать, но как оказалось это совсем не сложно, на сайте майкрософта есть примеры. Самое классное для меня было то, что программу можно скомпилировать из обычной командной строки: накидал код в блокноте, скомпилировал и можно пользоваться.


Программа уместиласть в 58 строк кода и конечно же там есть немало проблем, но свою функцию программа выполняет. Одна из известных мне проблем это то, что xml файл который содержит текст документа, еще и содержит вспомогательный текст в виде xml тегов и, соответственно, они тоже попадают в данные поиска. То есть если задать в поиск слово version - абсолютно все документы попадут в найденные, так как все они начинаются со слов <?xml version="1.0" ... Так же есть проблема что поиск не прекращается после находки слова, и выдает в результаты столько раз один документ, сколько он содержит искомое слово.


Сам код программы лежит на гитхабе DocxTextFinder


Интересно услышать конструктивную критику и надеюсь программа будет полезна не только мне)

ИТ-проекты пикабушников

339 постов3.2K подписчиков

Добавить пост

Правила сообщества

0. Запрещены посты вне тематики сообщества

1. Уважайте труд людей, пишите только конструктивную критику,

2. Не выкладывайте информацию по своему проекту чаще 2ух раз в месяц