|
Для упаковки нужна функция 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. Пишем простой архиваторный плагин
|