Есть ли способ определить, когда файл открыт другим процессом?
Я пробовал следующее
- Поиск дескрипторов в процессах, чтобы узнать, открыт ли файл
Это помогает только программам, которые держат файл открытым для использования. но не работает даже для простых приложений, таких какnotepad.exe
,notepad++
, которые закрывают файл сразу после загрузки в память. - Постоянно проверяйте свойство
Date Accessed
файла, чтобы знать, что он был открыт при его изменении.
Не работает, так как не меняется при открытии файла. например, я открыл и прочитал его в блокноте, но никогда не менял. - Используйте
FileSystemWatcher
для запуска события при открытии файла.
Может работать только для таких событий, какChanged
,Created
,Deleted
,Renamed
.... и не определяет, когда файл открыт.
Так есть ли способ обнаружить это? Я думаю, что это возможно, потому что большинство антивирусов могут резко обнаруживать и блокировать зараженные при открытии файлов.
CreateFile
и таких событиях, которые связаны с изменением файла. Это легко сделать с помощьюFileSystemWatcher
. - person Abraham   schedule 14.02.2021