Retro617 Ответов: 1

Как я могу обнаружить загрузку нового файла


Привет Всем,

Я пишу пакет защиты от вредоносных программ на c#, и одна из функций, которую я хотел бы добавить в приложение, заключается в том, что как только начнется загрузка, приложение обнаружит его и сравнит с известными поврежденными файлами. Возможно ли это вообще?

Что я уже пробовал:

Я пытался запустить его как сервис, но приложение не реагирует на загрузки.

Philippe Mori

Windows уже делает что-то подобное, предупреждая нас, когда мы загружаем необычные EXE-файлы.

На мой взгляд, C# не подходит для этой цели. Любой фоновый процесс, который будет выполнять некоторое сканирование, вероятно, должен быть написан в машинном коде, чтобы иметь минимальное влияние на контролируемую систему.

Кроме того, это несколько бесполезно... Либо вам нужна довольно большая инфраструктура и популярность, чтобы сделать ее полезной, либо она будет почти бесполезна, так как существуют миллионы возможных загрузок.

Простое сравнение, вероятно, не является адекватным, так как программное обеспечение часто обновляется, поэтому было бы трудно идти в ногу со временем.

1 Ответов

Рейтинг:
0

David_Wimbley

Вы можете использовать класс File system watcher в C# для обнаружения новых загрузок файлов.

Класс FileSystemWatcher (System.IO)[^]

С помощью следующих событий вы можете делать все, что вам нужно, когда файл изменяется/обновляется/удаляется.

watcher.Changed += new FileSystemEventHandler(OnChanged);
watcher.Created += new FileSystemEventHandler(OnChanged);
watcher.Deleted += new FileSystemEventHandler(OnChanged);
watcher.Renamed += new RenamedEventHandler(OnRenamed);


Имейте в виду, что это должно быть реализовано как служба windows для непрерывного мониторинга каталога.

Ссылка, которую я предоставил, содержит примеры того, что вам нужно сделать, чтобы класс FileSystemWatcher работал.