2010-02-28 1 views
11

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

+0

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

+0

Вы просматривали класс FileSystemWatcher? – 2010-02-28 21:54:04

+0

FileSystemWatcher дает мне пост-доступ, мне нужно иметь предварительный доступ – FBSC

ответ

7

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

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

Вы можете написать file system filter driver, являющийся неуправляемой DLL, который будет загружен O/S, который может intercept operations on files or folders. Однако это не тривиальная задача.

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

0

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

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

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

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

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

+1

В фактах я хочу изменить выведенный файл, если пользователь находится в списке ... – FBSC

2

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

Смежные вопросы