Как отловить запись файла на диск сторонним приложением?
Какое-то приложение сбрасывает на диск некоторый дамп. Задача:
1) Определить, что файл сбрасывается.
2) Определить, что сбрасывался файл именно этим приложением.
3) Опредеилть, что файл имеет нужное расширение.
4) Определить, что файл сбросился.
После этого скопировать файл в другое место.
Вариант с постоянным мониторингом какого-то древа каталогов не подходит. Интересует именно отлов момента создания файла и далее по шагам.
Заранее спасибо за любую информацию (в т.ч. запросы для гугла).
http://msdn.microsoft.com/ru-ru/library/system.io.filesystemwatcher.aspx
Если отслеживать одно приложение то:
1) внедрить туда длл
2) выяснить какой именно функцией и из какой библиотеки записывается фаил.
3) применить сплайсинг, и сначала будет отрабатывать ваш обработчик, а потом по вашему желанию запись на диск.
Тем самым решаются 1-й, 2-й и 3-й пункт вашего вопроса. 4-й пока не знаю, не решал таких задач.
Может что попроще подскажут(хотя и это не так то сложно).
Цитата: QWERYTY
"2) Определить, что сбрасывался файл именно этим приложением."
Если отслеживать одно приложение то:
1) внедрить туда длл
2) выяснить какой именно функцией и из какой библиотеки записывается фаил.
3) применить сплайсинг, и сначала будет отрабатывать ваш обработчик, а потом по вашему желанию запись на диск.
Тем самым решаются 1-й, 2-й и 3-й пункт вашего вопроса. 4-й пока не знаю, не решал таких задач.
Может что попроще подскажут(хотя и это не так то сложно).
Если отслеживать одно приложение то:
1) внедрить туда длл
2) выяснить какой именно функцией и из какой библиотеки записывается фаил.
3) применить сплайсинг, и сначала будет отрабатывать ваш обработчик, а потом по вашему желанию запись на диск.
Тем самым решаются 1-й, 2-й и 3-й пункт вашего вопроса. 4-й пока не знаю, не решал таких задач.
Может что попроще подскажут(хотя и это не так то сложно).
Вариант неплох. К сожалению, приложение постоянно обновляется. Используются разные весии одного и того же приложения. Так что с внедрением - не самый лучший вариант. Хотелось бы именно отловить какие-нибудь события системы, происходящие в момент создания файла.
Вот тут гляньте. Там на делфи, случайно наткнулся. Искал как проверить наличие файла на диске по мимо FileExists, и вспомнил ваш вопрос. Может вам поможет этот код.