Delphi, подождите, пока процесс копирования файла завершен

У меня есть ветка, которая использует ReadDirectoryChangesW , чтобы уведомлять меня, когда файл добавляется или удаляется в папке.

Для каждого нового изображения я открываю файл и создаю эскиз изображения. Однако может показаться, что я получаю уведомление до того, как файл будет полностью скопирован в папку назначения, и в этом случае я получаю только частичный эскиз. (Файлы копируются из удаленных мест на центральный сервер, и сеть может замедляться в часы пик.)

Я проверяю, используется ли файл, но, похоже, это не работает с файлами изображений.

HFileRes := CreateFile(pchar(Filename), GENERIC_READ or GENERIC_WRITE, 0, nil,   OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0) ;
Result := (HFileRes = INVALID_HANDLE_VALUE);
if (not Result) then
  CloseHandle(HFileRes) ;

Мои Вопрос в следующем: есть ли способ определить, когда файл полностью скопирован, или мне просто нужно подождать, пока размер файла или время последнего изменения не изменится с момента последней проверки?

7
задан Cœur 30 May 2018 в 10:50
поделиться