Не вызывается ProcessFile() для директорий при копировании

Только для тех, кто пишет плагины под Total Commander. Обмен опытом, решение проблем.

Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik

Ответить
beketata
Сообщения: 8
Зарегистрирован: Сб фев 26, 2005 11:41

Не вызывается ProcessFile() для директорий при копировании

Сообщение beketata »

TC 6.51, WIN XP
Packer Plugin WCX

При открытии архива, когда TC вызывает ReadHeader(), устанавливаю, в числе прочего, HeaderData->FileTime для каждого файла и каталога из архива.

После этого TC выводит содержимое архива и ту дату и время для файлов и каталогов, которую я установил в HeaderData->FileTime.
Но если в открытом архиве отметить целый каталог и попытаться его скопировать в любое место в соседнем окне, TC создает все каталоги самомтоятельно, не вызывая при этом ни одну функцию из плагина. Только когда ему нужен файл, тогда естественно, весь цикл вызовов повторяется с установленным флагом PK_EXTRACT в ProcessFile() для копируемых файлов.

Проблема в том, что TC, создавая каталоги не пользуется информацией из HeaderData->FileTime для этих каталогов, а у меня нет возможности это исправить, т.к. при создании каталогов TC не обращается к плагину.

Написал об этом на англоязычном форуме http://www.ghisler.ch/board/viewtopic.php?t=6709
но никто поке не отреагтровал.
beketata
Сообщения: 8
Зарегистрирован: Сб фев 26, 2005 11:41

Re: Не вызывается ProcessFile() для директорий при копирован

Сообщение beketata »

Кому интересно, автор TC ответил на англоязычном форуме:

http://www.ghisler.ch/board/viewtopic.php?t=6709

" ... внесение подобного изменения в интерфейс повалит многие уже существующие плагины."

Так что жить нам ребята без правильной даты у каталогов, скопированных их архивов.
Аватара пользователя
Sheridan
Сообщения: 129
Зарегистрирован: Вт мар 01, 2005 07:47
Откуда: Пятигорск
Контактная информация:

Сообщение Sheridan »

beketata
Дату каталога приблизительно (но довольно точно) можно взять, вычислив дату самого старшего файла, находящегося гдето в дереве от данного каталога. Или такое решение не подходит?
beketata
Сообщения: 8
Зарегистрирован: Сб фев 26, 2005 11:41

Сообщение beketata »

Sheridan писал(а): Дату каталога приблизительно (но довольно точно) можно взять, вычислив дату самого старшего файла, находящегося гдето в дереве от данного каталога. Или такое решение не подходит?
Проблема не в том, откуда эту дату взять, а в том, что ее невозможно установить, т.к. TC не вызывает ни одну функцию из плагина при создании самого каталога. И в этом случае плагину о создании каталога вообще ничего не известно.
Аватара пользователя
Sheridan
Сообщения: 129
Зарегистрирован: Вт мар 01, 2005 07:47
Откуда: Пятигорск
Контактная информация:

Сообщение Sheridan »

А о создании файла известно? Файл в каталоге то создается? Строй при распаковке собственноручно дерево каталогов а потом вычисляй что надо. Причем надо обратить внимание - распаковывается файл из корня архива либо из папки архива а также распаковывается архив полностью или только его часть, что насколько я помню sdk тоже не сделаеш...
Ответить