Не существует отдельного API для «действий файловой системы, инициированных пользователем» и «действий файловой системы, инициированных некоторой автоматической c системой». Это не должно вызывать удивления, так как в первую очередь нет объективного способа оценить разницу.
Если я использую проводник для перемещения файла, это действие пользователя или действия системы (я сказал " переместить файл ", а не" скопировать сюда, удалить там ")? Если у меня есть программа для редактирования текста и я сохраняю файл, это действие пользователя или действия системы? Если редактор также сохраняет файл резервной копии, это действие пользователя или действие системы? Если ОС также хранит свою собственную историю файлов?
Я думаю, мы можем согласиться с тем, что здесь есть скользящая шкала - первый случай наиболее явно связан с пользователем, а последний наиболее явно "за кадром" , Но они все инициированы пользователем. И это только с одним файлом, на который "напрямую" воздействуют.
Система не отслеживает серию решений и действий, которые привели к работе файловой системы (и если это так, интерпретация удачи что любым полезным способом). Например, он знает, какой процесс инициировал операцию, но это не то, что вы должны принимать во внимание вне отладки. Тот факт, что операция была инициирована explorer.exe
, не означает, что пользователь перетаскивает файл из одного места в другое в Проводнике.
Вам необходимо подумать о том, какую службу вы хотите предоставить. для вашего пользователя. Думая о том, почему я бы посчитал такую функцию полезной, первое, что приходит мне в голову, это то, что вам не нужно заботиться о том, как именно был удален файл, а о том, где файл был - то есть список каталогов, за которыми вы следите. Если я (или что-то еще!) Удаляю файл из моих документов, это может стоить моего внимания; если я (или что-то еще) удаляю файл из папки Temp, почему это должно меня волновать?