Сравнение файла между окнами удаленного и локального дискаC++

Программы на C++. Форум разработчиков
Anonymous
Сравнение файла между окнами удаленного и локального диска

Сообщение Anonymous »

Я пишу приложение, которое загружает вновь созданный (после запуска приложения) файл с сетевого диска на локальный диск.
  • Чтобы обнаружить изменения в файле, я использую опрос с указанием времени последнего обновления и 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;
Для выполнения всех задач я использую C++ с платформой qt.

Подробнее здесь: https://stackoverflow.com/questions/786 ... ve-windows

Вернуться в «C++»