Мы ищем надежную возможность получать уведомления, когда файл был изменен другим приложением.
Класс .NET FileSystemWatcher и функция ReadDirectoryChangesW () страдают от проблемы, связанной с тем, что они генерируют событие, даже если другое приложение еще не завершило запись.
В Linux inotify предоставляет событие IN_CLOSE_WRITE - файл был закрыт после открытия для записи.
Есть ли способ получить эту информацию в Windows?
[Изменить для уточнения:]
Меня прежде всего интересует, когда писатель закончил свою работу, а не об исключительных доступах / блокировках. И я хочу избежать опроса / повторяющихся решений типа «попробуй и поймай исключение», так как это, как правило, плохой стиль программирования, а программирование на основе событий лучше для экономии энергии.
Спасибо,
Markus