Ответ на ваш вопрос зависит от того, как вы это имели в виду. Если вы спрашиваете, можете ли вы обнаружить физическую операцию на диске (поиск, чтение или запись), ответ будет отрицательным. Диски имеют дисковый кеш, чтобы скрыть эти операции от вас во имя производительности. Вы можете сказать, когда кэш изменяется, используя механизмы, описанные выше, но не когда физическая операция выполняется.
Вот почему у нас есть журнальные файловые системы. Однако даже при ведении журнала существует вероятность фактической потери данных в случае катастрофического сбоя и невозможности сохранения кэша.
Из вышеперечисленных методов я использовал FileSystemWatcher, и он работает очень хорошо. Вы можете выбрать события, в которых вы хотите получать уведомления о том, что ваша программа получит событие программы, когда событие файла произойдет.
Обратите внимание, что, по крайней мере, в Windows / C # событие приходит в отдельном потоке, поэтому вам придется использовать делегаты, чтобы сообщить основному (или другому) потоку о том, что событие произошло.