отслеживать доступ к файлам/каталогам в C#

Я хочу разработать приложение, которое регистрирует доступ к файлам/каталогам на машине.

например Захожу на D:\ в папку документы и открываю вордовский файл. Я хочу, чтобы мое приложение создавало журнал в следующем формате:

  1. Д:\ Открыто
  2. D:\документы открыты
  3. D:\documents\secret.docx Открыт

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


person Balwant Singh    schedule 24.08.2011    source источник
comment
Я боюсь, что вы не сможете сделать это без очень низкоуровневых подключений WinAPI к ядру.   -  person Daniel Hilgarth    schedule 24.08.2011


Ответы (3)


звучит так, как будто вы хотите сделать программу FileMon, такую ​​​​как внутренние компоненты системы. на их веб-сайте Марк рассказывает о том, как работает FileMon, чтобы вы могли получить вдохновение, прочитав статью.

также см. здесь: Как вы отслеживаете доступ к файлам и изменения на файловом сервере по имени пользователя?

person Davide Piras    schedule 24.08.2011

Не уверен, что такого рода мониторинг может быть достигнут с помощью filesystemwatcher, поскольку я считаю, что он направлен на мониторинг изменений. Вы можете использовать аудит файловой системы (перейдя в дополнительные настройки безопасности), который будет регистрировать события в журнале событий, и вы можете извлечь их оттуда.

person Maverik    schedule 24.08.2011

Наиболее жизнеспособным вариантом является использование драйвера фильтра файловой системы. Такой драйвер дает вам точный контроль над всеми запросами, идущими к определенной файловой системе. Единственная проблема с этим подходом — сложность разработки такого драйвера в режиме ядра.

person Eugene Mayevski 'Callback    schedule 24.08.2011