MVV
|
Posted: Mon May 30, 2016 15:17 Post subject: |
|
|
Если файлы в папке назначения существуют, то они удаляются до начала копирования туда новых.
Копирование новых выполняется переносом извлечённых архиватором файлов из временной папки посредством вызова функции SHFileOperation. По непонятным причинам (погодные явления, фаза луны, чётность номера дня со времён большого взрыва) функция SHFileOperation время от времени не отрабатывает правильно и возвращает ошибку.
Это происходит уже в коде MultiArc, когда ConPaste и архиватор уже успешно отработали, и когда файлы уже извлечены во временную папку.
Добавлено спустя 39 минут:
Похоже, баг проявляется только для подпапок в архиве, и только если имя папки назначения совпадает с именем подпапки, из которой извлекаются файлы. И дескриптор этой папки открыт, когда копирование проваливается (попробовал закрыть его принудительно - возникла ошибка обращения к закрытому дескриптору, но функция копирования потом отработала нормально). Перезапускаю тотал, пытаюсь извлечь в папку с таким же именем - ошибка, переименовываю папку или захожу в другую - всё ок. Воспроизводимость 100%.
Рецепт остаётся прежним - избавиться от SHFileOperation. _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|