MVV

|
Posted: Mon Feb 07, 2011 16:00 Post subject: |
|
|
Total7zip wrote: | MVV wrote: | Не рассчитан интерфейс WCX-плагинов на то, что в одной папке может быть несколько файлов с одинаковыми именами, и ничего с этим не поделаешь. Тотал сообщает плагину лишь имена файлов, но никак не их индексы в панели. |
это не так - тотал коммандер как раз работает с индексами.
и при каждой операции получает от плагина список файлов начиная с индекса 0 и до тех пор пока плагин не скажет что список кончился.
тотал же нормально отображает 4 файла с одинковыми именами в приведенном примере.
просто, когда дело доходит до распаковки, похоже, тотал коммандер забывает про индексы и предлагает распаковать первый же файл с подходящим именем. я проверю позже, но уверен на 99% что это так. | Вообще, конечно, замечание в чём-то верное. Хотя индексы и используются лишь для перечисления файлов, но не для обращения к ним.
Тотал при извлечении файлов из архива никак не ожидает, что архив вдруг изменится, или что плагин вернет список файлов в ином порядке (если вдруг плагин вернет имена пары файлов, которые должны быть извлечены, в ином порядке, тотал тупо оставит второй файл неизвлечённым), он полностью перечисляет архив, ища все необходимые файлы, причем в заранее определенном (ожидаемом) порядке. Поэтому теоретически этого может быть достаточно для возможности извлечения файлов с одинаковыми именами.
Но на данный момент в тотале просто используется предположение (соглашение, требование) об уникальности имен в архиве (и в 99% случаев оно абсолютно подтверждается - исключениями являются лишь "ненормальные" архивы), поэтому городить такой огород просто не было необходимости.
Пожалуй, самым простым способом решения проблемы будет проверка повторения имен файлов плагином, и модификация дублирующихся имен (например, через расширение со счетчиком, или его модификацию с помощью иных редко используемых символов). Но тогда придется заводить что-то вроде ассоциативного массива для проверки совпадения имени. _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|