MVV

|
Posted: Thu Jan 27, 2011 19:41 Post subject: |
|
|
Кстати, насколько я понимаю, в интерфейсе WCX этот вопрос тоже актуален.
Сейчас подебажил - тотал вначале спрашивает, перезаписать ли файл, потом открывает архив, вызывая OpenArchive, потом перечисляет содержимое архива, вызывая ReadHeader, и, когда ReadHeader возвращает структуру с информацией о файле, который юзер извлекает из архива, тотал удаляет результирующий файл и вызывает ProcessFile, указывая результирующий путь.
Причем, если извлекается несколько файлов, тотал спрашивает о перезаписи очередного файла до того как дойдет до него, просматривая архив. О первом спрашивает вообще до открытия архива, потом доходит до него, извлекает, и тут же справшивает о втором, доходит до него, извлекает,.. и так далее. Вообще непонятное поведение - а вдруг архиватор во второй раз вернет список файлов в другом порядке?.. Получается, у тотала уже построен список файлов, которые нужно извлекать, и он тупо идет по списку, причем при переходе к очередному файлу просто продолжает перебирать архив, пока не дойдет до этого файла, совершенно не проверяя, нужно ли извлекать текущий файл, если его имя не совпадает с именем, которое тотал ожидает. ИМХО, разумнее было бы просто перебрать архив, проверяя каждый файл на принадлежность множеству извлекаемых, и для нужных файлов выдавать запрос/вызывать ProcessFile.
Получается, что независимо от того, поддерживает ли архиваторный плагин "мягкую" (назовем это так) перезапись файлов, тотал не предоставляет плагину шанса её использовать. _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|