|
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_FILES | 1 | Удалить исходные файлы после упаковки
| | PK_PACK_SAVE_PATHS | 2 | Сохранить пути файлов
| | PK_PACK_ENCRYPT | 4 | Запрашивает пароль у пользователя и шифрует файл с этим паролем
|
|