В настоящее время мы используем QFileSystemWatcher, принадлежащий Qt. Из-за ограниченной поддержки в Mac OS X он может только уведомлять нас обо всех событиях: каталог изменен или файл изменен.Наблюдатель файловой системы для Mac OS X
Однако последнее событие (файл изменено) запускается несколько раз, когда его размер немного больше, а запись на диск занимает немного больше времени.
Наше обходное решение - установить таймер для проверки файла за 1 секунду. Если до истечения времени истечения таймера появляется больше сигналов о файле, мы перезапускаем таймер.
Есть ли способ получить уведомление, когда файл записан на диск (закончил запись)? Нет необходимости ограничивать Qt, любая библиотека могла бы сделать.
Мы знаем о методе мониторинга Kqueue, но это слишком низкий уровень, и мы не хотим, чтобы сделать это для каждого файла, как мы отслеживаем большую часть файловой системы ..
QFileWatcher посылает сигнал fileChange постоянно в то время как файл записывается на диск или только один раз, когда он начинает письмо? – ixSci
@ixSci постоянно посылает сигалы; сигналы были обмануты даже для небольших файлов. – zzk