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) ;
У меня такой вопрос: есть ли способ определить, когда файл полностью скопирован, или я просто подожду, пока размер файла или время последнего изменения не изменились с момента последней проверки?
1 ответ
Чтобы убедиться, что передача файла закончена, сначала проверьте, можете ли вы получить эксклюзивный доступ.
FileHandle := FileOpen(FileName, fmOpenRead or fmShareExclusive);
if FileHandle > 0 then
{valid file handle}