Я должен прервать, когда система пытается получить доступ в файл и сделать что-то, прежде чем это произойдет.
Здесь есть очень похожая тема: Как я могу предотвратить создание папки с помощью службы Windows? . Это может дать больше информации, но @LBushkin уже сделал такой же вывод.
Вы можете использовать FileSystemWatcher
- но это не позволяет вам перехватить событие и сделать что-то заранее - он информирует вас только после того, как конкретный файл или каталог был каким-то образом затронут.
Перехватить доступ к файлам нелегко.
Вы можете написать драйвер фильтра файловой системы , который представляет собой неуправляемую DLL, которую загружает операционная система, которая может перехватывать операции с файлами или папками . Однако это нетривиальная задача.
Чего вы пытаетесь достичь, может быть, есть более простая альтернатива?
Проверьте http://easyhook.codeplex.com/ , он предоставляет вам прямо из C # c ++, например перезапись метода dll.
Интересный вопрос. Какой вид доступа? Чтение, запись, удаление, копирование?
Если вам нужно предотвратить доступ к файлу, то безопасность - это то, что нужно. Затем вы можете перехватить доступ и делегировать задачу более высокопривилегированному механизму выполнения. Например, службе, работающей от имени пользователя с более высокими привилегиями.
Если вы хотите остановить доступ на уровне системы, то вам понадобится фильтр IFS.
Если весь доступ осуществляется через ваш код, то я бы предложил библиотеку, которая предотвращает доступ.
И, как уже упоминали другие люди, есть FileSystemWatcher, но я думаю, что в этом посте доступ не раньше.