- Чтобы обнаружить изменения в файле, я использую опрос с указанием времени последнего обновления и ReadDirectoryChangesW.
- Затем я попытаюсь открыть файл с помощью CreateFileA в режиме общего доступа. как READ, чтобы проверить, полностью ли создан или скопирован файл.
- Затем я начну копировать файлы с помощью CopyFileExW.
Событие
Статус< /th>
Действие
Комментарий
Измененное событие
Копирование
В очереди на обработку
Копирование
< td>
Попробуйте заблокировать файл
Копирование
Повторить позже
Измененное событие
Копирование
< /tr>
В очереди на обработку
Скопировано
Событие, ожидающее изменения
Попытка заблокировать файл
Скопировано
Начать копирование
Измененное событие
Скопировано
В очереди на обработку
Скопировано
< /td>
Попробуйте заблокировать файл
Скопировано
< td>Начать копирование
Здесь я копировал один и тот же файл два раза без каких-либо изменений, поэтому как мне этого избежать? Думаю, я не смогу использовать хеш файла, поскольку размер файла составляет несколько ГБ (около 30 ГБ).
Я попробовал сравнить время последнего обновления удаленного файла со временем создания локального файла. Это надежно?
Код: Выделить всё
if last update time of remove file > creation time of local file:
do copy;
else:
ignore;
Подробнее здесь: https://stackoverflow.com/questions/786 ... ve-windows