Подтвердить что ты не робот

Как перехватить доступ к файлу в .NET-программе

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

4b9b3361

Ответ 1

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

Перехват доступа к файлам - это не то, что вы можете сделать легко.

Вы можете написать фильтр файловой системы, который является неуправляемой DLL, которую загрузит O/S, которая может операции перехвата файлов или папок. Однако это не тривиальная задача.

Что вы пытаетесь достичь, возможно, есть более простая альтернатива?

Ответ 2

Использование только .net невозможно

Ответ 4

Отметьте http://easyhook.codeplex.com/, он предоставляет вам непосредственно из С# С++, например, для перезаписи dll.

Ответ 5

Интересный вопрос. Какой доступ? Читать, писать, удалять, копировать?

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

  • Если вы хотите остановить доступ к системному уровню, вам понадобится фильтр IFS.

  • Если весь доступ осуществляется через ваш код, я предлагаю библиотеку, которая предотвращает доступ.

  • И, как говорили другие люди, есть FileSystemWatcher, но я думаю, что этот пост не раньше.