Если пишешь под WinNT (любой версии), есть масса вариантов (используя API):
1. напиши Perfomance Counter (об этом в MS SDK написано, который вместе с Билдером идёт). Поставь его на события чтения и записи файлов. Если поставишь на вообще чтение и запись, можешь ещё и сеть отлавливать.
2. (как я уже делал) для этого тебе понадобятся права как минимум продвинутого пользователя. Есть функция (не забудь #include <windows.h>

ReadDirectoryChanges (найди по индексу в win32.hlp как-то так она называется), которая показывает, какие были операции с какими файлами (названия только в WideChar). По-моему, Win2k и WinXP таким образом восстанавливает удалённые системные файлы. А я на этом делал защиту от вредных пользователей и трассировку обращений к диску (могу программу дать). Работает 100%.