Остановимся подробнее на особенностях упаковки файлов по маске.
Предположим, что у нас есть следующие файлы:
с:\ZIP\file1.xls
с:\ZIP\file2.xls
с:\ZIP\file.doc
с:\ZIP\Test\file3.xls
с:\ZIP\Test\file4.xls
Для упаковки всех этих файлов в архив можно воспользоваться следующим кодом (листинг 6.123).
Листинг 6.123. Пример добавления файлов в ZIP-архив
Архив.Добавить("c:\ZIP\file1.xls", РежимСохраненияПутейZIP.СохранятьПолныеПути);
Архив.Добавить("c:\ZIP\Test\file3.xls", РежимСохраненияПутейZIP.СохранятьОтносительныеПути);
Архив.Добавить("c:\ZIP\Test\file4.xls", РежимСохраненияПутейZIP.НеСохранятьПути);
// и так далее…
Следует отметить, что относительные пути актуальны только при задании маски (значение СохранятьОтносительныеПути системного перечисления РежимСохраненияПутейZIP).
В архив файлы попадут следующим образом:
с:\ZIP\file1.xls
\Test\file3.xls
\file4.xls
Добавить файлы в архив можно и другим способом – по маске помещаемых файлов (листинг 6.124).
Листинг 6.124. Пример добавления файлов в ZIP-архив
Архив.Добавить("c:\ZIP\*.xls", РежимСохраненияПутейZIP.СохранятьОтносительныеПути, РежимОбработкиПодкаталоговZIP.НеОбрабатывать);
В результирующий архив попадут следующие файлы:
\file1.xls
\file2.xls
При создании архива можно включать файлы во вложенных каталогах (листинг 6.125).
Листинг 6.125. Пример добавления файлов из вложенных каталогов в ZIP-архив
Архив.Добавить("c:\ZIP\*.xls", РежимСохраненияПутейZIP.СохранятьОтносительныеПути,
РежимОбработкиПодкаталоговZIP.ОбрабатыватьРекурсивно);
В результирующий архив попадут следующие файлы:
\file1.xls
\file2.xls
\Test\file3.xls
\Test\file4.xls