Программы, плагины, статьи от Моторокера

Новости
Статьи
Программы
Ссылки
Автор

Архиваторный плагин для Total Commander на Delphi

Упаковка файлов

Для упаковки нужна функция PackFiles.

function PackFiles(PackedFile, SubPath, SrcPath, AddList: PChar;
  Flags: integer): integer; stdcall;
begin
end;

Функция должна возвращать ноль при успешном вызове.

PackedFile – полное имя файла архива, который вы должны создать или изменить.

Для конвертации файлов это имя без надобности, т.к. новые имена файлов создаются автоматически на основе пакуемых и отличаются от имени архива. Используйте только путь к архиву, чтобы конвертировать файлы в эту папку.

SrcPath – каталог, из которого паковать файлы.

AddList – имена файлов для упаковки. Каждая строка в AddList – нуль-терминированная (заканчивается нулём #0). Строка AddList заканчивается двумя нулевыми байтами (#0#0).

FileName1.ext#0FileName2.ext#0FileName3.ext#0#0

Кроме имён файлов с папками в AddList отдельно указаны и папки:

SubDir1\#0SubDir1\FileName1.ext#0SubDir1\FileName2.ext#0#0

Строка SrcPath вместе с именами файлов из AddList образует полные имена файлов на диске.

Строка SubPath вместе с SrcPath и именами файлов из AddList образует полные имена файлов в архиве.

SrcPath + AddList[i] --> SubPath + SrcPath + AddList[i]

Flags может содержать комбинацию следующих значений, означающих выбор пользователя в Total Commander:

PK_PACK_MOVE_FILES  Удалить исходные файлы после упаковки

PK_PACK_SAVE_PATHS  Сохранить пути файлов

Если стоит галочка  Отдельные архивы для каждого выбранного файла/каталога, то PackedFile вызывается для каждого выделенного каталога. Имя каждого каталога передаётся в SubPath.

Просьба помочь снять эту галочку программно из плагина. Проблема решается возвратом флага PK_CAPS_MULTIPLE. Хотя галочка тоже легко снимается из плагина.

Необязательно использовать все передаваемые значения только так, как описано. Вы можете игнорировать имя файла архива, чтобы конвертировать файлы в эту папку (или совсем в другую), можете изменять файлы в исходной папке, можете не удалять файлы и т.п.

Вы можете просто запустить любую другую программу со сформированным списком файлов.

<< Назад | Оглавление | Дальше >>
Пример 1. Пишем простой архиваторный плагин


© 2006–2011 Моторокер Плагины для Total Commander