Как контролировать доступ к файлам?C#

Место общения программистов C#
Ответить
Anonymous
 Как контролировать доступ к файлам?

Сообщение Anonymous »

Я хочу отслеживать, когда какой-либо процесс читает определенный файл.
Когда я использую procmon для мониторинга указанного файла, я вижу, что он запрашивается и читается много
Изображение

Теперь я хочу отслеживать определенный файл и действовать после выполнения операции CloseFile для указанного файла.
Поэтому я установил пакет nuget Microsoft.Diagnostics.Tracing.TraceEvent и попробовал множество вещей, чтобы получить это работает. Кажется, это работает случайно? Но уже давно это не работает.
Несколько вещей, о которых стоит упомянуть:
  • Моя IDE работает с права администратора.
  • Я отключил procmon, чтобы убедиться, что он не мешает.
  • Я убедился, что обратный вызов выполнено (здесь я могу записать множество имен файлов. но только не тот, который я ищу)
  • Я установил ключевые слова на «Все», потому что с ключевыми словами FileIO это никогда не работал
  • Я проверил номер LostEvents, предоставленный обратным вызовом. Но такого никогда не было 0
Вот мой код. Что я делаю не так?
await Task.Run(() =>
{
using TraceEventSession session = new("MySession");
session.EnableKernelProvider(KernelTraceEventParser.Keywords.All);
session.Source.Kernel.FileIOClose+= data =>
{
if (data.FileName == @"c:\foo.txt")
{
// do stuff
}
};
session.Source.Process();
});


Подробнее здесь: https://stackoverflow.com/questions/791 ... ile-access
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»