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

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

Рекомендации по написанию архиваторных плагинов для Total Commander

PackFiles – упаковать файлы

PackFiles определяет, что должно произойти, когда пользователь создаёт архив или добавляет в него файлы.

int __stdcall PackFiles (char *PackedFile, char *SubPath, char *SrcPath, char *AddList, int Flags);

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

Описание

PackFiles должна возвращать ноль при успешном вызове или один из кодов ошибок при неудачном.

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

SubPath – подкаталог в существующем архиве, в который нужно поместить файлы.

SubPath – либо NULL (или пустая строка), если файлы должны быть упакованы с путями, которые передаются в именах файлов (чаще при создании нового архива или добавлении в корневой каталог судествующего), либо not NULL, когда они должны быть помещены в данном подкаталоге в существующем архиве. Пример:

SubPath="подкаталог" Имя в AddList="подкаталог2\filename.ext" -> Файл должен быть упакован как подкаталог\подкаталог2\filename.ext"

т.е. итоговое имя файла в архиве должно быть SubPath + SrcPath + AddList[i]

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]

Если файл с таким именем уже есть в архиве, его можно заменить, т.к. Total Commander сам спрашивает пользователя о замене файлов “Заменить FileName.old файлом FileName.new?”.

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

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

Константа

ЗначениеОписание
PK_PACK_MOVE_FILES1Удалить исходные файлы после упаковки
PK_PACK_SAVE_PATHS2Сохранить пути файлов
PK_PACK_ENCRYPT4Запрашивает пароль у пользователя и шифрует файл с этим паролем


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